import type { BatchProgressData, BatchExecutionResult } from '../core/batch-execution';
import type { SessionMeta, TestStats } from '../core/types';
export type RunnerEventType = 'runner:initialized' | 'runner:session-defined' | 'runner:batch-started' | 'runner:batch-progress' | 'runner:batch-completed' | 'runner:batch-failed' | 'runner:report-generated' | 'runner:combined-report-generated' | 'runner:cleared' | 'runner:destroyed' | 'runner:config-updated';
export interface RunnerEvent {
    type: RunnerEventType;
    timestamp: Date;
    data?: RunnerEventData;
}
export type RunnerEventData = InitializedEventData | SessionDefinedEventData | BatchStartedEventData | BatchProgressEventData | BatchCompletedEventData | BatchFailedEventData | ReportGeneratedEventData | CombinedReportGeneratedEventData | ClearedEventData | ConfigUpdatedEventData;
export interface InitializedEventData {
    configUsed: any;
    sessionCount: number;
    timestamp: Date;
}
export interface SessionDefinedEventData {
    sessionLabel: string;
    sessionMeta: SessionMeta;
    totalSessions: number;
}
export interface BatchStartedEventData {
    sessionLabels: string[];
    totalSessions: number;
    executionMode: 'sequential' | 'parallel';
    options: any;
}
export interface BatchProgressEventData extends BatchProgressData {
    sessionResults?: Record<string, any>;
}
export interface BatchCompletedEventData extends BatchExecutionResult {
}
export interface BatchFailedEventData {
    error: Error;
    completedSessions: string[];
    failedSession?: string;
    partialResults: Record<string, any>;
}
export interface ReportGeneratedEventData {
    reportType: 'session';
    sessionLabel: string;
    reportSize: number;
    generatedAt: Date;
    stats: TestStats;
}
export interface CombinedReportGeneratedEventData {
    reportType: 'combined';
    totalSessions: number;
    reportSize: number;
    generatedAt: Date;
    summary: any;
}
export interface ClearedEventData {
    clearedSessions: string[];
    clearedReports: string[];
}
export interface ConfigUpdatedEventData {
    oldConfig: any;
    newConfig: any;
    changes: string[];
}
//# sourceMappingURL=runner-events.d.ts.map