/**
 * AgentAnnouncer - 에이전트 실행 이벤트 통보 + 통계 수집
 * EventEmitter 기반, in-memory only
 */
import { EventEmitter } from 'events';
export interface AgentStartEvent {
    taskId: string;
    agentName: string;
    model: string;
    prompt: string;
    timestamp: number;
}
export interface AgentCompleteEvent {
    taskId: string;
    agentName: string;
    success: boolean;
    duration: number;
    model: string;
    resultSummary: string;
    timestamp: number;
}
export interface AgentErrorEvent {
    taskId: string;
    agentName: string;
    error: string;
    retryable: boolean;
    duration: number;
    timestamp: number;
}
export interface AgentStats {
    totalLaunched: number;
    totalCompleted: number;
    totalFailed: number;
    totalDuration: number;
    avgDuration: number;
    byModel: Record<string, {
        count: number;
        totalDuration: number;
    }>;
    byAgent: Record<string, {
        count: number;
        successRate: number;
    }>;
}
type AnnounceEvent = AgentStartEvent | AgentCompleteEvent | AgentErrorEvent;
export declare class AgentAnnouncer extends EventEmitter {
    private history;
    private stats;
    constructor();
    announceStart(event: AgentStartEvent): void;
    announceComplete(event: AgentCompleteEvent): void;
    announceError(event: AgentErrorEvent): void;
    getStats(): AgentStats;
    getRecentHistory(limit?: number): AnnounceEvent[];
    resetStats(): void;
    formatStatusLine(event: AnnounceEvent): string;
    private pushHistory;
    private updateModelStats;
    private updateAgentStats;
    private createEmptyStats;
}
export declare const agentAnnouncer: AgentAnnouncer;
export {};
//# sourceMappingURL=AgentAnnouncer.d.ts.map