from .base import KeyValueStoreBackend
from typing import Any, Optional

class DummyClient:
    cache: Any = ...
    def __init__(self, *args: Any, **kwargs: Any) -> None: ...
    def get(self, key: Any, *args: Any, **kwargs: Any): ...
    def get_multi(self, keys: Any): ...
    def set(self, key: Any, value: Any, *args: Any, **kwargs: Any) -> None: ...
    def delete(self, key: Any, *args: Any, **kwargs: Any) -> None: ...
    def incr(self, key: Any, delta: int = ...): ...
    def touch(self, key: Any, expire: Any) -> None: ...

class CacheBackend(KeyValueStoreBackend):
    servers: Any = ...
    supports_autoexpire: bool = ...
    supports_native_join: bool = ...
    implements_incr: bool = ...
    url: Any = ...
    options: Any = ...
    backend: Any = ...
    expires: Any = ...
    def __init__(self, app: Any, expires: Optional[Any] = ..., backend: Optional[Any] = ..., options: Optional[Any] = ..., url: Optional[Any] = ..., **kwargs: Any) -> None: ...
    def get(self, key: Any): ...
    def mget(self, keys: Any): ...
    def set(self, key: Any, value: Any): ...
    def delete(self, key: Any): ...
    def incr(self, key: Any): ...
    def expire(self, key: Any, value: Any): ...
    def client(self): ...
    def __reduce__(self, args: Any = ..., kwargs: Optional[Any] = ...): ...
    def as_uri(self, *args: Any, **kwargs: Any): ...
