import pathlib
import tqdm
from . import retry as retry
from _typeshed import Incomplete
from pydicom.misc import warn_and_log as warn_and_log

HAVE_REQUESTS: bool

class DownloadProgressBar(tqdm.tqdm):
    total: Incomplete
    def update_to(self, b: int = 1, bsize: int = 1, tsize: int | None = None) -> None: ...

USE_PROGRESS_BAR: bool
HERE: Incomplete

def calculate_file_hash(fpath: pathlib.Path) -> str: ...
def get_config_dir() -> pathlib.Path: ...
def download_with_progress(url: str, fpath: pathlib.Path) -> None: ...
def get_data_dir() -> pathlib.Path: ...
def get_url_map() -> dict[str, str]: ...
def get_url(filename: str) -> str: ...
def data_path_with_download(filename: str, check_hash: bool = True, redownload_on_hash_mismatch: bool = True, url: str | None = None, quiet: bool = True) -> pathlib.Path: ...

class NoHashFound(KeyError): ...

def get_cached_filehash(filename: str) -> str: ...
def data_file_hash_check(filename: str) -> bool: ...
