from _typeshed import Incomplete

class BaseStorage:
    name: Incomplete
    def __init__(self, name=None) -> None: ...
    def save(self, data, mode: str = "w") -> None: ...
    def read(self, read_mode: str = "r") -> None: ...
    def remove(self) -> None: ...

class TempFolderStorage(BaseStorage):
    name: Incomplete
    def open(self, mode: str = "r"): ...
    def save(self, data, mode: str = "w") -> None: ...
    def read(self, mode: str = "r"): ...
    def remove(self) -> None: ...
    def get_full_path(self): ...

class CacheStorage(BaseStorage):
    CACHE_LIFETIME: int
    CACHE_PREFIX: str
    name: Incomplete
    def save(self, data, mode=None) -> None: ...
    def read(self, read_mode: str = "r"): ...
    def remove(self) -> None: ...

class MediaStorage(BaseStorage):
    MEDIA_FOLDER: str
    name: Incomplete
    def save(self, data, mode=None) -> None: ...
    def read(self, read_mode: str = "rb"): ...
    def remove(self) -> None: ...
    def get_full_path(self): ...
