# fmt: off

from typing import Any
from builtins import type as cls_t, object as obj_t
from types import ModuleType as mod_t

from .handle import ResourceHandle

__all__ = [
    'cls_get',  'obj_get',  'mod_get',
    'cls_set',  'obj_set',  'mod_set',
    'cls_handle', 'mod_handle', 'obj_handle',
    'cls_dict', 'mod_dict', 'obj_dict',
]


################################################################################

def cls_handle(cls: cls_t) -> ResourceHandle: ...
def mod_handle(mod: mod_t) -> ResourceHandle: ...
def obj_handle(cls: obj_t) -> ResourceHandle: ...

def cls_dict(cls: cls_t) -> dict[str, Any]: ...
def mod_dict(mod: mod_t) -> dict[str, Any]: ...
def obj_dict(cls: obj_t) -> dict[str, Any]: ...

def cls_get(cls: cls_t, key: str) -> Any: ...
def mod_get(mod: mod_t, key: str) -> Any: ...
def obj_get(cls: obj_t, key: str) -> Any: ...

def cls_set(cls: cls_t, key: str, val: Any) -> None: ...
def mod_set(mod: mod_t, key: str, val: Any) -> None: ...
def obj_set(cls: obj_t, key: str, val: Any) -> None: ...
