from typing import TypedDict from pydantic import BaseModel, Json from resonance_engine.tasks.types import FanCollectBatch class FanFanoutClientResult(TypedDict): name: str fanout_count: int dispatched: int class FanFanoutResult(TypedDict): clients: list[FanFanoutClientResult] class FanCollectEventRecord(BaseModel): event: Json[FanCollectBatch] class FanCollectEvent(BaseModel): records: list[FanCollectEventRecord] class FanCollectResult(TypedDict): fans_processed: int class FanCollectDLQResult(TypedDict): batches_marked_stale: int