from typing import (
    Any, Callable, final, Final, Generic, Iterable, Literal, Optional,
    overload, Protocol, Tuple, TypeVar, Union,
)


_T = TypeVar('_T')

class _SupportsRead(Protocol):
    def read(self, size: int = ...) -> str:
        ...

class _SupportsWrite(Generic[_T]):
    def write(self, s: _T) -> None:
        ...

_CallbackStr = TypeVar('_CallbackStr', bound=Callable[[str], None])

_CallbackBytes = TypeVar('_CallbackBytes', bound=Callable[[bytes], None])

_SupportsWriteBytes = TypeVar('_SupportsWriteBytes', bound=_SupportsWrite[bytes])

_SupportsWriteStr = TypeVar('_SupportsWriteStr', bound=_SupportsWrite[str])


###############################################################################
### _exports.pyx
###############################################################################


@final
class Options:
    '''Customizations for the ``encoder_*(...)`` function family.'''
    quotationmark: Final[str] = ...
    tojson: Final[Optional[str]] = ...
    mappingtypes: Final[Tuple[type, ...]] = ...

    def __init__(
        self, *,
        quotationmark: Optional[str] = ...,
        tojson: Optional[str],
        mappingtypes: Optional[Tuple[type, ...]],
    ) -> None:
        ...

    def update(
        self, *,
        quotationmark: Optional[str] = ...,
        tojson: Optional[str],
        mappingtypes: Optional[Tuple[type, ...]],
    ) -> Options:
        '''Creates a new Options instance by modifying some members.'''
        ...

def decode(data: str, maxdepth: Optional[int] = ..., some: bool = ...) -> Any:
    '''Decodes JSON5 serialized data from an ``str`` object.'''
    ...

def decode_latin1(
    data: bytes, maxdepth: Optional[int] = ..., some: bool = ...,
) -> Any:
    '''Decodes JSON5 serialized data from a ``bytes`` object.'''
    ...

def decode_utf8(
    data: bytes, maxdepth: Optional[int] = ..., some: bool = ...,
) -> Any:
    '''Decodes JSON5 serialized data from a ``bytes`` object.'''
    ...

def decode_buffer(
    data: bytes,
    maxdepth: Optional[int] = ...,
    some: bool = ...,
    wordlength: Optional[int] = ...,
) -> Any:
    '''Decodes JSON5 serialized data from an object that supports the buffer protocol, e.g. bytearray.'''
    ...

def decode_callback(
    cb: Callable[..., Union[str, bytes, bytearray, int, None]],
    maxdepth: Optional[int] = ...,
    some: bool = ...,
    args: Optional[Iterable[Any]] = [],
) -> Any:
    '''Decodes JSON5 serialized data by invoking a callback.'''
    ...

def decode_io(
    fp: _SupportsRead, maxdepth: Optional[int] = ..., some: bool = ...,
) -> Any:
    '''Decodes JSON5 serialized data from a file-like object.'''
    ...

def encode(
    data: Any, *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> str:
    '''Serializes a Python object to a JSON5 compatible string.'''
    ...

def encode_bytes(
    data: Any, *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> str:
    '''Serializes a Python object to a JSON5 compatible bytes string.'''
    ...

@overload
def encode_callback(
    data: Any, cb: _CallbackStr, supply_bytes: Literal[False] = ..., *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> _CallbackStr:
    '''Serializes a Python object into a callback function.'''
    ...

@overload
def encode_callback(
    data: Any, cb: _CallbackBytes, supply_bytes: Literal[True], *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> _CallbackBytes:
    ...

@overload
def encode_io(
    data: Any, fp: _SupportsWriteBytes, supply_bytes: Literal[True] = ..., *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> _SupportsWriteBytes:
    '''Serializes a Python object into a file-object.'''
    ...

@overload
def encode_io(
    data: Any, fp: _SupportsWriteStr, supply_bytes: Literal[False], *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> _SupportsWriteStr:
    ...

def encode_noop(
    data: Any, *,
    options: Optional[Options] = ...,
    quotationmark: Optional[str] = ...,
    tojson: Optional[str],
    mappingtypes: Optional[Tuple[type, ...]],
) -> bool:
    '''Test if the input is serializable.'''
    ...


###############################################################################
### _legacy.pyx
###############################################################################


def loads(s: str, *, encoding: str = ...) -> Any:
    '''Decodes JSON5 serialized data from a string.'''
    ...

def load(fp: _SupportsRead) -> Any:
    '''Decodes JSON5 serialized data from a file-like object.'''
    ...

def dumps(obj: Any) -> str:
    '''Serializes a Python object to a JSON5 compatible string.'''
    ...

def dump(obj: Any, fp: _SupportsWrite[str]) -> None:
    '''Serializes a Python object to a JSON5 compatible string.'''
    ...


###############################################################################
### _exceptions.pyx
###############################################################################


class Json5Exception(Exception):
    '''Base class of any exception thrown by PyJSON5.'''

    def __init__(self, message: Optional[str] = ..., *args: Any) -> None:
        ...

    @property
    def message(self) -> Optional[str]:
        ...


###############################################################################
### _exceptions_encoder.pyx
###############################################################################


class Json5EncoderException(Json5Exception):
    '''Base class of any exception thrown by the serializer.'''
    ...

@final
class Json5UnstringifiableType(Json5EncoderException):
    '''The encoder was not able to stringify the input, or it was told not to by the supplied ``Options``.'''
    def __init__(
        self, message: Optional[str] = ..., unstringifiable: Any = ...,
    ) -> None:
        ...

    @property
    def unstringifiable(self) -> Any:
        '''The value that caused the problem.'''
        ...


###############################################################################
### _exceptions_decoder.pyx
###############################################################################


class Json5DecoderException(Json5Exception):
    '''Base class of any exception thrown by the parser.'''
    def __init__(
        self, message: Optional[str] = ..., result: Any = ..., *args: Any,
    ) -> None:
        ...

    @property
    def result(self) -> Any:
        '''Deserialized data up until now.'''
        ...

@final
class Json5NestingTooDeep(Json5DecoderException):
    '''The maximum nesting level on the input data was exceeded.'''
    ...

@final
class Json5EOF(Json5DecoderException):
    '''The input ended prematurely.'''
    ...

@final
class Json5IllegalCharacter(Json5DecoderException):
    '''An unexpected character was encountered.'''
    def __init__(
        self,
        message: Optional[str] = ...,
        result: Any = ...,
        character: Optional[str] = ...,
        *args: Any,
    ) -> None:
        ...

    @property
    def character(self) -> Optional[str]:
        '''Illegal character.'''
        ...

@final
class Json5ExtraData(Json5DecoderException):
    '''The input contained extranous data.'''
    def __init__(
        self,
        message: Optional[str] = ...,
        result: Any = ...,
        character: Optional[str] = ...,
        *args: Any,
    ) -> None:
        ...

    @property
    def character(self) -> Optional[str]:
        '''Extranous character.'''
        ...

@final
class Json5IllegalType(Json5DecoderException):
    '''The user supplied callback function returned illegal data.'''
    def __init__(
        self,
        message: Optional[str] = ...,
        result: Any = ...,
        value: Optional[Any] = ...,
        *args: Any,
    ) -> None:
        ...

    @property
    def value(self) -> Optional[Any]:
        '''Value that caused the problem.'''
        ...
