import type { RunnerEvent, RunnerEventType } from './runner-events';
import type { SessionEvent, SessionEventType } from './session-events';
export interface IUnifiedEventBus {
    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;
}
export interface EventFilter {
    eventTypes?: (RunnerEventType | SessionEventType)[];
    sessionLabel?: string;
    timeRange?: {
        start: Date;
        end: Date;
    };
    maxEvents?: number;
    severity?: 'info' | 'warning' | 'error';
}
//# sourceMappingURL=unified-event-bus.d.ts.map