export interface AgentNotice { agent: string; action: string; target: string; timestamp: number; } export type AgentEvent = { type: 'memory:saved'; topic: string; project?: string; } | { type: 'extraction:completed'; projects: string[]; } | { type: 'memory:promoted'; saved: number; } | { type: 'operator:channel-delta'; channelKey: string; lines: string[]; eventIds: string[]; } | { type: 'wiki:compiled'; pages: string[]; } | { type: 'dashboard:refresh'; } | { type: 'agent:action'; agent: string; action: string; target: string; }; export type AgentEventType = AgentEvent['type']; type EventHandler = (event: AgentEvent) => void | Promise; export declare class AgentEventBus { static readonly MAX_NOTICES = 50; private listeners; private debounceTimers; private listenerDebounceTimers; private notices; on(type: AgentEventType, handler: EventHandler): void; off(type: AgentEventType, handler: EventHandler): void; emit(event: AgentEvent): void; emitDebounced(event: AgentEvent, delayMs: number): void; /** * Register a handler whose invocation is trailing-edge debounced: rapid * successive events collapse into one call with the LAST event after * delayMs of quiet. Pending invocations are cancelled by destroy(). */ onDebounced(type: AgentEventType, handler: EventHandler, delayMs: number): void; getRecentNotices(limit: number): AgentNotice[]; destroy(): void; } export {}; //# sourceMappingURL=agent-event-bus.d.ts.map