from abc import (
    ABCMeta,
    abstractmethod,
)

from typing import Dict


class I18n(object):
    __metaclass__ = ABCMeta

    @abstractmethod
    def internationalize(
        self,       # type: I18n
        labels,     # type: Dict[str, str]
    ):
        # type: (...) -> Dict[str, str]

        raise NotImplementedError()

    @abstractmethod
    def internationalize_text(
        self,   # type: I18n
        text,   # type: str
    ):
        # type: (...) -> str

        raise NotImplementedError()

    @abstractmethod
    def convert_value_to_currency(
        self,   # type: I18n
        value,  # type: float
    ):
        # type: (...) -> str

        raise NotImplementedError()
