from collections.abc import Iterable, Iterator, Mapping, MutableMapping
from os import PathLike
from typing import Any

def normalize_locale(name: str) -> str | None: ...
def resolve_locale_filename(name: PathLike[str] | str) -> str: ...
def exists(name: str) -> bool: ...
def locale_identifiers() -> list[str]: ...
def load(name: PathLike[str] | str, merge_inherited: bool = ...) -> dict[str, Any]: ...
def merge(dict1: MutableMapping[Any, Any], dict2: Mapping[Any, Any]) -> None: ...

class Alias:
    keys: tuple[str, ...]
    def __init__(self, keys: Iterable[str]) -> None: ...
    def resolve(self, data: Mapping[str, Any]) -> Mapping[str, Any]: ...

class LocaleDataDict(MutableMapping[Any, Any]):
    base: Mapping[str, Any]
    def __init__(self, data: Mapping[str, Any], base: Mapping[str, Any] | None = ...) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[str]: ...
    def __getitem__(self, key: str) -> Any: ...
    def __setitem__(self, key: str, value: Any) -> None: ...
    def __delitem__(self, key: str) -> None: ...
    def copy(self) -> LocaleDataDict: ...
