import { EventEmitter } from 'events'; import { WorkflowPhase } from './workflow-state-manager.js'; export type AgentActivity = 'idle' | 'decomposition' | 'orchestration' | 'task_execution' | 'research' | 'context_enrichment' | 'dependency_analysis'; export interface WorkflowAwareAgentState { agentId: string; currentActivity: AgentActivity; activityStartTime: Date; lastHeartbeat: Date; lastProgressUpdate: Date; workflowId?: string; sessionId?: string; expectedDuration?: number; progressPercentage: number; isWorkflowCritical: boolean; extendedTimeoutUntil?: Date; gracePeriodCount: number; metadata: { workflowPhase?: WorkflowPhase; taskCount?: number; estimatedCompletion?: Date; lastActivityUpdate?: Date; [key: string]: unknown; }; } export interface WorkflowTimeoutConfig { baseHeartbeatInterval: number; activityTimeoutMultipliers: Record; maxGracePeriods: number; gracePeriodDuration: number; progressUpdateInterval: number; workflowCriticalExtension: number; enableAdaptiveTimeouts: boolean; } export declare class WorkflowAwareAgentManager extends EventEmitter { private static instance; private config; private agentStates; private agentOrchestrator; private workflowStateManager; private decompositionService; private monitoringInterval; private isMonitoring; private startTime; private constructor(); private scheduleAsyncInitialization; private initializeDecompositionService; private getAgentOrchestrator; static getInstance(config?: Partial): WorkflowAwareAgentManager; startMonitoring(): Promise; stopMonitoring(): Promise; registerAgentActivity(agentId: string, activity: AgentActivity, options?: { workflowId?: string; sessionId?: string; expectedDuration?: number; isWorkflowCritical?: boolean; metadata?: Record; }): Promise; updateAgentProgress(agentId: string, progressPercentage: number, metadata?: Record): Promise; completeAgentActivity(agentId: string, success?: boolean, metadata?: Record): Promise; getAgentState(agentId: string): WorkflowAwareAgentState | undefined; getAllAgentStates(): WorkflowAwareAgentState[]; getWorkflowAwareStats(): { totalAgents: number; activeWorkflows: number; agentsByActivity: Record; criticalAgents: number; agentsInGracePeriod: number; averageProgress: number; }; private setupEventListeners; private performWorkflowAwareHealthCheck; private shouldMarkAgentOffline; private calculateActivityTimeout; private adjustTimeoutBasedOnProgress; private handleAgentTimeout; private handleWorkflowPhaseChange; private handleWorkflowProgressUpdate; private handleDecompositionStarted; private handleDecompositionProgress; private handleDecompositionCompleted; private handleDecompositionFailed; private handleEpicGenerationStarted; private handleEpicGenerationCompleted; private handleTaskListStarted; private handleTaskListCompleted; dispose(): void; } //# sourceMappingURL=workflow-aware-agent-manager.d.ts.map