import abc

class SaslMechanism(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def __init__(self, **config): ...
    @abc.abstractmethod
    def auth_bytes(self): ...
    @abc.abstractmethod
    def receive(self, auth_bytes): ...
    @abc.abstractmethod
    def is_done(self): ...
    @abc.abstractmethod
    def is_authenticated(self): ...
    def auth_details(self): ...
