from typing import Union, List, Dict, Any, IO


Basic = Union[List, Dict[str, Any]]


class Loader: ...
class Dumper: ...
class CLoader: ...
class CDumper: ...

# def load(stream: IO, loader: Any) -> Any: ...
def load(data: bytes, Loader: Any = None, encoding: str = 'utf8') -> Any: ...
def dump(data: str, Dumper: Any = None, encoding: str = 'utf8') -> bytes: ...
