from __future__ import annotations from abc import ABC, abstractmethod class BaseHeartbeatAdapter(ABC): @abstractmethod async def check_ready(self) -> bool: ... @abstractmethod async def send_typing(self, chat_id: str) -> None: ... @abstractmethod async def clear_typing(self, chat_id: str) -> None: ... async def resolve_recipients(self, chat_id: str) -> list[str]: return [chat_id] async def on_unhealthy(self, chat_id: str) -> None: pass