from abc import ABCMeta, abstractmethod


class BaseProvider:
    __metaclass__ = ABCMeta

    def __init__(self,
                 from_lang: str,
                 to_lang: str,
                 cookie: str = None,
                 region: str = None,
                 auth_token: str = None, **kwargs):
        self.from_lang = from_lang
        self.to_lang = to_lang
        self.cookie = cookie
        self.region = region
        self.auth_token = auth_token
        self.kwargs = kwargs

    @abstractmethod
    def translate(self, text: str) -> str | None:
        return NotImplemented("Please implement this method")
