import { EventEmitter } from 'events'; import { AgentEvent } from './event_validation'; export type EventMiddleware = (event: AgentEvent) => AgentEvent | null; export declare class AgentEventEmitter extends EventEmitter { private static instance; private middleware; private agentListeners; private currentAgentId; private currentSessionId; private isInitialized; private constructor(); static getInstance(): AgentEventEmitter; initialize(): void; use(middleware: EventMiddleware): void; remove(middleware: EventMiddleware): void; clearMiddleware(): void; setCurrentAgent(agentId: string): void; setCurrentSession(sessionId: string): void; getCurrentAgent(): string; getCurrentSession(): string; clearSessionContext(): void; private processEvent; on(eventType: string, listener: (event: AgentEvent) => void): this; addListener(event: string | symbol, listener: (...args: any[]) => void): this; removeListener(event: string | symbol, listener: (...args: any[]) => void): this; listenerCount(eventType: string): number; emit(eventType: string, event: AgentEvent): boolean; emitAsync(eventType: string, event: AgentEvent): Promise; } export declare function getEventEmitter(): AgentEventEmitter;