from typing import Any

MODEL_TO_ENCODING: dict[str, str]
MODEL_PREFIX_TO_ENCODING: dict[str, str]

class Encoding:
    @property
    def name(self) -> str: ...
    @property
    def max_token_value(self) -> int: ...
    @property
    def n_vocab(self) -> int: ...
    @property
    def eot_token(self) -> int: ...
    @property
    def special_tokens_set(self) -> set[str]: ...
    def encode(
        self,
        text: str,
        *,
        allowed_special: Any = ...,
        disallowed_special: Any = ...,
    ) -> list[int]: ...
    def encode_ordinary(self, text: str) -> list[int]: ...
    def encode_batch(
        self,
        text: list[str],
        *,
        allowed_special: Any = ...,
        disallowed_special: Any = ...,
    ) -> list[list[int]]: ...
    def encode_ordinary_batch(self, text: list[str]) -> list[list[int]]: ...
    def decode(self, tokens: list[int]) -> str: ...
    def decode_batch(self, batch: list[list[int]]) -> list[str]: ...

def get_encoding(encoding_name: str) -> Encoding: ...
def encoding_name_for_model(model_name: str) -> str: ...
def encoding_for_model(model_name: str) -> Encoding: ...
def list_encoding_names() -> list[str]: ...
