from _typeshed import Incomplete
from pydicom._dicom_dict import DicomDictionary as DicomDictionary, RepeatersDictionary as RepeatersDictionary
from pydicom._private_dict import private_dictionaries as private_dictionaries
from pydicom.misc import warn_and_log as warn_and_log
from pydicom.tag import BaseTag as BaseTag, Tag as Tag, TagType as TagType

masks: dict[str, tuple[int, int]]
mask1: Incomplete
mask2: Incomplete

def mask_match(tag: int) -> str | None: ...
def add_dict_entry(tag: int, VR: str, keyword: str, description: str, VM: str = '1', is_retired: str = '') -> None: ...
def add_dict_entries(new_entries_dict: dict[int, tuple[str, str, str, str, str]]) -> None: ...
def add_private_dict_entry(private_creator: str, tag: int, VR: str, description: str, VM: str = '1') -> None: ...
def add_private_dict_entries(private_creator: str, new_entries_dict: dict[int, tuple[str, str, str, str]]) -> None: ...
def get_entry(tag: TagType) -> tuple[str, str, str, str, str]: ...
def dictionary_is_retired(tag: TagType) -> bool: ...
def dictionary_VR(tag: TagType) -> str: ...
def dictionary_VM(tag: TagType) -> str: ...
def dictionary_description(tag: TagType) -> str: ...
def dictionary_keyword(tag: TagType) -> str: ...
def dictionary_has_tag(tag: TagType) -> bool: ...
def keyword_for_tag(tag: TagType) -> str: ...

keyword_dict: dict[str, int]

def tag_for_keyword(keyword: str) -> int | None: ...
def repeater_has_tag(tag: int) -> bool: ...

REPEATER_KEYWORDS: Incomplete

def repeater_has_keyword(keyword: str) -> bool: ...
def get_private_entry(tag: TagType, private_creator: str) -> tuple[str, str, str, str]: ...
def private_dictionary_VR(tag: TagType, private_creator: str) -> str: ...
def private_dictionary_VM(tag: TagType, private_creator: str) -> str: ...
def private_dictionary_description(tag: TagType, private_creator: str) -> str: ...
