export interface InboxChangedEvent { agent_name: string; /** * Why the inbox changed. Subscribers don't need this for state — they * re-fetch the resource — but it's useful for debug logging and for the * Tether VSCode extension to choose toast wording. */ reason: "message_received" | "message_read" | "broadcast_received"; /** * v2.7 / Tether Phase 3 — durable outbox row id (autoincrement primary * key on `inbox_events`). The producer-side write path INSERTs the * outbox row + reads `lastInsertRowid` + threads it here so subscribers * can dedup. Without this, the in-process bus (this same-process * fast path) and the cross-process outbox tail (the polling loop * inside the HTTP daemon at src/outbox-tail.ts) would both fire * `sendResourceUpdated` for the same event when sender and subscriber * happen to be in the same process. mcp-subscriptions tracks the * highest id it has broadcast per URI and skips duplicates. */ id: number; } export declare function emitInboxChanged(event: InboxChangedEvent): void; export declare function onInboxChanged(handler: (event: InboxChangedEvent) => void): () => void; /** * Test seam: drop every listener. NEVER call this from production code — * only test fixtures invoke it between test cases to avoid cross-test bleed. */ export declare function _resetInboxEventBusForTests(): void; //# sourceMappingURL=inbox-events.d.ts.map