import type { IUnifiedEventBus, EventFilter } from '../../interfaces/events/unified-event-bus';
import type { RunnerEvent, RunnerEventType } from '../../interfaces/events/runner-events';
import type { SessionEvent, SessionEventType } from '../../interfaces/events/session-events';
export declare class UnifiedEventBus implements IUnifiedEventBus {
    private runnerListeners;
    private sessionListeners;
    private anyEventListeners;
    private eventHistory;
    private readonly maxHistorySize;
    emitRunnerEvent(event: RunnerEvent): void;
    onRunnerEvent(eventType: RunnerEventType, callback: (event: RunnerEvent) => void): () => void;
    emitSessionEvent(event: SessionEvent): void;
    onSessionEvent(eventType: SessionEventType, callback: (event: SessionEvent) => void): () => void;
    onAnyEvent(callback: (event: RunnerEvent | SessionEvent) => void): () => void;
    getEventHistory(filter?: EventFilter): (RunnerEvent | SessionEvent)[];
    clearEventHistory(): void;
    hasListeners(eventType?: RunnerEventType | SessionEventType): boolean;
    getListenerCount(eventType?: RunnerEventType | SessionEventType): number;
    destroy(): void;
    private addToHistory;
}
//# sourceMappingURL=unified-event-bus.d.ts.map