/** * MailboxEventEmitter — minimal pub/sub for real-time push to SSE clients. * * The HTTP bridge uses this to push `send`/`ack`/`delete` events to * connected SSE clients without requiring them to poll. Each event is a * shallow copy of the relevant data (message id, action, timestamp) — * never the full mailbox state. * * The emitter is intentionally simple: a Set of listeners, add/remove, * and emit. No buffering, no replay — if a client connects after a send, * it won't receive past events (it should query first to catch up). * * @module mailbox-events */ export type MailboxEventType = 'message.sent' | 'message.acked' | 'message.deleted' | 'message.restored'; export interface MailboxEvent { type: MailboxEventType; messageId: string; from?: string | undefined; to?: string | undefined; timestamp: string; } export type MailboxEventListener = (event: MailboxEvent) => void; export declare class MailboxEventEmitter { private listeners; subscribe(fn: MailboxEventListener): () => void; emit(event: MailboxEvent): void; /** Number of active subscribers (for observability / metrics). */ get subscriberCount(): number; clear(): void; } //# sourceMappingURL=mailbox-events.d.ts.map