from toml.decoder import InlineTableDict as InlineTableDict
from typing import Any, Optional

unicode = str

def dump(o: Mapping[str, Any], f: IO[str], encoder: TomlEncoder = ...) -> str: ...
def dumps(o: Mapping[str, Any], encoder: TomlEncoder = ...) -> str: ...

class TomlEncoder:
    preserve: Any = ...
    dump_funcs: Any = ...
    def __init__(self, _dict: Any = ..., preserve: bool = ...): ...
    def get_empty_table(self): ...
    def dump_list(self, v: Any): ...
    def dump_inline_table(self, section: Any): ...
    def dump_value(self, v: Any): ...
    def dump_sections(self, o: Any, sup: Any): ...

class TomlPreserveInlineDictEncoder(TomlEncoder):
    def __init__(self, _dict: Any = ...) -> None: ...

class TomlArraySeparatorEncoder(TomlEncoder):
    separator: Any = ...
    def __init__(self, _dict: Any = ..., preserve: bool = ..., separator: str = ...) -> None: ...
    def dump_list(self, v: Any): ...

class TomlNumpyEncoder(TomlEncoder):
    def __init__(self, _dict: Any = ..., preserve: bool = ...) -> None: ...

class TomlPreserveCommentEncoder(TomlEncoder):
    def __init__(self, _dict: Any = ..., preserve: bool = ...): ...

class TomlPathlibEncoder(TomlEncoder):
    def dump_value(self, v: Any): ...