import os

from types import ModuleType
from typing import Any, AnyStr, Callable, Dict, Tuple, overload

def best_realpath(module: ModuleType) -> Callable[[AnyStr], AnyStr]: ...
@overload
def realpath_backport(path: str) -> str: ...
@overload
def realpath_backport(path: bytes) -> bytes: ...
@overload
def _resolve_path(path: str, rest: str, seen: Dict[Any, Any]) -> Tuple[str, bool]: ...
@overload
def _resolve_path(
    path: bytes, rest: bytes, seen: Dict[Any, Any]
) -> Tuple[bytes, bool]: ...
def lru_cache(user_function: Callable[..., Any]) -> Callable[..., Any]: ...
