/**
 * PDCA 協調器 v3
 * 支援多 Claude CLI 實例的版本
 */
import { EventEmitter } from 'events';
import { MultiClaudeManager } from '../../core/multi-claude-manager.js';
import { CommunicationManager } from '../../core/communication-manager.js';
import { AgentRole, TaskAssignment } from '../../core/message-protocol.js';
export interface OrchestratorOptions {
    sessionName?: string;
    enableMonitoring?: boolean;
    communicationDir?: string;
    useSimulation?: boolean;
}
export declare class PDCAOrchestratorV3 extends EventEmitter {
    private multiClaudeManager;
    private communicationManager;
    private currentTasks;
    private agentProgress;
    constructor(options?: OrchestratorOptions);
    /**
     * 初始化事件處理
     */
    private initializeEventHandlers;
    /**
     * 啟動系統
     */
    start(): Promise<void>;
    /**
     * 分配任務
     */
    assignTask(taskDescription: string): Promise<void>;
    /**
     * 創建任務計畫
     */
    private createTaskPlan;
    /**
     * 處理接收到的訊息
     */
    private handleMessage;
    /**
     * 處理進度更新
     */
    private handleProgressUpdate;
    /**
     * 處理結果報告
     */
    private handleResultReport;
    /**
     * 協調下一步行動
     */
    private orchestrateNextStep;
    /**
     * 獲取下一個代理
     */
    private getNextAgent;
    /**
     * 處理求助請求
     */
    private handleHelpRequest;
    /**
     * 處理錯誤報告
     */
    private handleErrorReport;
    /**
     * 計算整體進度
     */
    private calculateOverallProgress;
    /**
     * 獲取系統狀態
     */
    getSystemStatus(): {
        agents: ReturnType<MultiClaudeManager['getAgentStatuses']>;
        tasks: Map<string, TaskAssignment>;
        progress: Map<AgentRole, number>;
        communication: ReturnType<CommunicationManager['getStatistics']>;
    };
    /**
     * 停止系統
     */
    stop(): Promise<void>;
}
export default PDCAOrchestratorV3;
//# sourceMappingURL=orchestrator-v3.d.ts.map