from _typeshed import Incomplete
from collections.abc import KeysView
from pydicom.sr._cid_dict import name_for_cid as name_for_cid
from pydicom.sr.coding import Code as Code

cid_for_name: Incomplete
ConceptsType = dict[str, dict[str, dict[str, tuple[str, list[int]]]]]
SnomedMappingType = dict[str, dict[str, str]]

class _CID_Dict:
    repr_format: str
    str_format: str
    cid: Incomplete
    def __init__(self, cid: int) -> None: ...
    def __dir__(self) -> list[str]: ...
    def __getattr__(self, name: str) -> Code: ...
    @property
    def concepts(self) -> dict[str, Code]: ...
    def dir(self, *filters: str) -> list[str]: ...
    def __contains__(self, code: Code) -> bool: ...
    def trait_names(self) -> list[str]: ...

class _CodesDict:
    scheme: Incomplete
    def __init__(self, scheme: str | None = None) -> None: ...
    def __dir__(self) -> list[str]: ...
    def __getattr__(self, name: str) -> _CodesDict | _CID_Dict | Code: ...
    def dir(self, *filters: str) -> list[str]: ...
    def schemes(self) -> KeysView[str]: ...
    def trait_names(self) -> list[str]: ...

codes: Incomplete
