from collections.abc import Callable from collections.abc import Iterable from collections.abc import Mapping from typing import TypeVar from .mixins import ImmutableDictMixin from .mixins import UpdateDictMixin T = TypeVar("T") _CPT = TypeVar("_CPT", str, int, bool) _OptCPT = _CPT | None def cache_control_property(key: str, empty: _OptCPT, type: type[_CPT]) -> property: ... class _CacheControl(UpdateDictMixin[str, _OptCPT], dict[str, _OptCPT]): provided: bool def __init__( self, values: Mapping[str, _OptCPT] | Iterable[tuple[str, _OptCPT]] = (), on_update: Callable[[_CacheControl], None] | None = None, ) -> None: ... @property def no_cache(self) -> bool | None: ... @no_cache.setter def no_cache(self, value: bool | None) -> None: ... @no_cache.deleter def no_cache(self) -> None: ... @property def no_store(self) -> bool | None: ... @no_store.setter def no_store(self, value: bool | None) -> None: ... @no_store.deleter def no_store(self) -> None: ... @property def max_age(self) -> int | None: ... @max_age.setter def max_age(self, value: int | None) -> None: ... @max_age.deleter def max_age(self) -> None: ... @property def no_transform(self) -> bool | None: ... @no_transform.setter def no_transform(self, value: bool | None) -> None: ... @no_transform.deleter def no_transform(self) -> None: ... def _get_cache_value(self, key: str, empty: T | None, type: type[T]) -> T: ... def _set_cache_value(self, key: str, value: T | None, type: type[T]) -> None: ... def _del_cache_value(self, key: str) -> None: ... def to_header(self) -> str: ... @staticmethod def cache_property(key: str, empty: _OptCPT, type: type[_CPT]) -> property: ... class RequestCacheControl(ImmutableDictMixin[str, _OptCPT], _CacheControl): @property def max_stale(self) -> int | None: ... @max_stale.setter def max_stale(self, value: int | None) -> None: ... @max_stale.deleter def max_stale(self) -> None: ... @property def min_fresh(self) -> int | None: ... @min_fresh.setter def min_fresh(self, value: int | None) -> None: ... @min_fresh.deleter def min_fresh(self) -> None: ... @property def only_if_cached(self) -> bool | None: ... @only_if_cached.setter def only_if_cached(self, value: bool | None) -> None: ... @only_if_cached.deleter def only_if_cached(self) -> None: ... class ResponseCacheControl(_CacheControl): @property def public(self) -> bool | None: ... @public.setter def public(self, value: bool | None) -> None: ... @public.deleter def public(self) -> None: ... @property def private(self) -> bool | None: ... @private.setter def private(self, value: bool | None) -> None: ... @private.deleter def private(self) -> None: ... @property def must_revalidate(self) -> bool | None: ... @must_revalidate.setter def must_revalidate(self, value: bool | None) -> None: ... @must_revalidate.deleter def must_revalidate(self) -> None: ... @property def proxy_revalidate(self) -> bool | None: ... @proxy_revalidate.setter def proxy_revalidate(self, value: bool | None) -> None: ... @proxy_revalidate.deleter def proxy_revalidate(self) -> None: ... @property def s_maxage(self) -> int | None: ... @s_maxage.setter def s_maxage(self, value: int | None) -> None: ... @s_maxage.deleter def s_maxage(self) -> None: ... @property def immutable(self) -> bool | None: ... @immutable.setter def immutable(self, value: bool | None) -> None: ... @immutable.deleter def immutable(self) -> None: ...