import type { Observation, Session, SessionSummary } from "../types"; /** Map of event names to their payload types. */ export type MemoryEventMap = { "observation:created": Observation; "observation:updated": Observation; "session:started": Session; "session:ended": Session; "summary:created": SessionSummary; "pending:enqueued": number; "pending:processed": number; }; /** Union of all valid memory event names. */ export type MemoryEventName = keyof MemoryEventMap; /** Typed event emitter for memory repository change notifications. */ export interface MemoryEventBus { on(event: K, listener: (payload: MemoryEventMap[K]) => void): this; off(event: K, listener: (payload: MemoryEventMap[K]) => void): this; once(event: K, listener: (payload: MemoryEventMap[K]) => void): this; emit(event: K, payload: MemoryEventMap[K]): boolean; removeAllListeners(event?: MemoryEventName): this; listenerCount(event: MemoryEventName): number; } /** Create a new typed event bus backed by Node's EventEmitter. */ export declare function createEventBus(): MemoryEventBus; //# sourceMappingURL=bus.d.ts.map