from typing import Protocol from app.models.tasks import Max2TgTask, NotifyFallbackTask, SetReactionTask, Tg2MaxTask class QueuePort(Protocol): async def connect(self) -> None: ... async def close(self) -> None: ... async def enqueue_max2tg(self, task: Max2TgTask | SetReactionTask | NotifyFallbackTask) -> None: ... async def dequeue_max2tg(self, timeout: int = 0) -> Max2TgTask | SetReactionTask | NotifyFallbackTask | None: ... async def enqueue_tg2max(self, task: Tg2MaxTask) -> None: ... async def dequeue_tg2max(self, timeout: int = 0) -> Tg2MaxTask | None: ...