from abc import ABC, abstractmethod from collections.abc import Iterator from typing import Any class MailIntakeAdapter(ABC): @abstractmethod def iter_message_refs(self, query: str) -> Iterator[dict[str, str]]: ... @abstractmethod def fetch_message(self, message_id: str) -> dict[str, Any]: ... @abstractmethod def fetch_thread(self, thread_id: str) -> dict[str, Any]: ...