from collections import OrderedDict from typing import ( Any, Callable, Dict, List, Optional, Union, ) def default_key_func(key: Union[str, int], key_prefix: str, version: Union[str, int]) -> str: ... def get_key_func(key_func: Optional[Union[str, Callable]]) -> Callable: ... class BaseCache: def __contains__(self, key: str) -> bool: ... def __init__(self, params: Dict[str, Any]) -> None: ... def close(self, **kwargs) -> None: ... def decr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ... def decr_version(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ... def delete_many(self, keys: List[str], version: None = ...) -> None: ... def get_backend_timeout(self, timeout: object = ...) -> Optional[float]: ... def get_many(self, keys: List[str], version: Optional[int] = ...) -> Dict[str, Union[str, int]]: ... def get_or_set( self, key: str, default: Optional[Union[str, Callable, int]], timeout: object = ..., version: Optional[int] = ... ) -> Optional[Union[str, int]]: ... def incr(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ... def incr_version(self, key: str, delta: int = ..., version: Optional[int] = ...) -> int: ... def make_key(self, key: Union[str, int], version: Optional[Union[str, int]] = ...) -> str: ... def set_many( self, data: Union[Dict[str, str], Dict[str, Union[Dict[str, int], str]], Dict[str, int], OrderedDict], timeout: object = ..., version: Optional[int] = ... ) -> List[Any]: ... def validate_key(self, key: str) -> None: ...