from abc import ABC, abstractmethod from typing import Generic, Optional, TypeVar T = TypeVar("T") class CredentialStore(ABC, Generic[T]): @abstractmethod def load(self) -> Optional[T]: ... @abstractmethod def save(self, credentials: T) -> None: ... @abstractmethod def clear(self) -> None: ...