# pylint: disable=all
# flake8: noqa
import enum
from typing import Any
from typing import Optional

class Precision(enum.Enum):
    MOST_COMMON: int = ...
    MAXIMUM: int = ...

class Align(enum.Enum):
    NATURAL: int = ...
    DOT: int = ...
    RIGHT: int = ...

class _CurrencyContext:
    has_sign: bool = ...
    integer_max: int = ...
    fractional_dist: Any = ...
    def __init__(self) -> None: ...
    def update(self, number: Any) -> None: ...
    def get_fractional(self, precision: Any): ...

class DisplayContext:
    ccontexts: Any = ...
    commas: bool = ...
    def __init__(self) -> None: ...
    def set_commas(self, commas: Any) -> None: ...
    def update(self, number: Any, currency: str = ...) -> None: ...
    def quantize(self, number: Any, currency: Any, precision: Any = ...): ...
    def build(
        self,
        alignment: Any = ...,
        precision: Any = ...,
        commas: Optional[Any] = ...,
        reserved: int = ...,
    ): ...
    DEFAULT_UNINITIALIZED_PRECISION: int = ...

class DisplayFormatter:
    dcontext: Any = ...
    precision: Any = ...
    fmtstrings: Any = ...
    fmtfuncs: Any = ...
    def __init__(
        self, dcontext: Any, precision: Any, fmtstrings: Any
    ) -> None: ...
    def format(self, number: Any, currency: str = ...): ...
    def quantize(self, number: Any, currency: str = ...): ...
    __call__: Any = ...

DEFAULT_DISPLAY_CONTEXT: Any
DEFAULT_FORMATTER: Any
