import os
from _typeshed import Incomplete
from enum import IntEnum
from pydicom import Dataset as Dataset
from pydicom.data.download import calculate_file_hash as calculate_file_hash, data_path_with_download as data_path_with_download, get_cached_filehash as get_cached_filehash, get_data_dir as get_data_dir, get_url_map as get_url_map
from pydicom.misc import warn_and_log as warn_and_log

DATA_ROOT: Incomplete

class DataTypes(IntEnum):
    DATASET = 0
    CHARSET = 1
    PALETTE = 2
    DICOMDIR = 3
    JPEG = 4

def get_external_sources() -> dict: ...
def external_data_sources() -> dict: ...
def online_test_file_dummy_paths() -> dict[str, str]: ...
def fetch_data_files() -> None: ...
def get_files(base: str | os.PathLike, pattern: str = '**/*', dtype: int = ...) -> list[str]: ...
def get_palette_files(pattern: str = '**/*') -> list[str]: ...
def get_testdata_file(name: str, read: bool = False, download: bool = True) -> str | Dataset | None: ...
def get_testdata_files(pattern: str = '**/*') -> list[str]: ...
def get_charset_files(pattern: str = '**/*') -> list[str]: ...
