from io import ( BufferedRandom, BufferedReader, BufferedWriter, ) from typing import ( Any, Callable, Dict, List, Optional, Union, ) def _write_content(f: Union[BufferedRandom, BufferedWriter], expiry: float, value: Any) -> None: ... class FileBasedCache: def __init__(self, dir: str, params: Dict[str, Union[Callable, int]]) -> None: ... def _createdir(self) -> None: ... def _cull(self) -> None: ... def _delete(self, fname: str) -> None: ... def _is_expired(self, f: BufferedReader) -> bool: ... def _key_to_file(self, key: str, version: Optional[int] = ...) -> str: ... def _list_cache_files(self) -> List[str]: ... def add( self, key: str, value: Union[str, bytes, int], timeout: object = ..., version: Optional[int] = ... ) -> bool: ... def clear(self) -> None: ... def delete(self, key: str, version: Optional[int] = ...) -> None: ... def get( self, key: str, default: Optional[Union[str, int]] = ..., version: Optional[int] = ... ) -> Optional[str]: ... def has_key(self, key: str, version: Optional[int] = ...) -> bool: ... def set(self, key: str, value: Any, timeout: object = ..., version: Optional[int] = ...) -> None: ... def touch(self, key: str, timeout: object = ..., version: None = ...): ...