import { EventEmitter } from 'events'; import { AtomicTask, TaskStatus } from '../types/task.js'; import { OptimizedDependencyGraph } from '../core/dependency-graph.js'; export interface TaskTransition { taskId: string; fromStatus: TaskStatus; toStatus: TaskStatus; timestamp: Date; reason?: string; triggeredBy?: string; metadata?: Record; isAutomated: boolean; } export interface TaskTransitionResult { success: boolean; taskId: string; transition?: TaskTransition; error?: string; metadata?: Record; } export interface TaskLifecycleConfig { enableAutomation: boolean; transitionTimeout: number; maxRetries: number; enableStateHistory: boolean; enableDependencyTracking: boolean; automationInterval?: number; timeoutThreshold?: number; } export interface TransitionStatistics { totalTransitions: number; byStatus: Record; averageTransitionTime: number; successRate: number; automatedTransitions: number; manualTransitions: number; } export interface AutomationMetrics { lastProcessingTime: number; tasksProcessed: number; transitionsTriggered: number; errorsEncountered: number; } export declare class TaskLifecycleService extends EventEmitter { private config; private transitionHistory; private statistics; private automationMetrics; private transitionLocks; private automationTimer?; private disposed; constructor(config?: Partial); isValidTransition(fromStatus: TaskStatus, toStatus: TaskStatus): boolean; transitionTask(taskId: string, toStatus: TaskStatus, options?: { reason?: string; triggeredBy?: string; metadata?: Record; isAutomated?: boolean; }): Promise; processAutomatedTransitions(tasks: AtomicTask[], dependencyGraph: OptimizedDependencyGraph): Promise; processDependencyCascade(completedTaskId: string, tasks: AtomicTask[], _dependencyGraph: OptimizedDependencyGraph): Promise; getReadyTasks(tasks: AtomicTask[], _dependencyGraph: OptimizedDependencyGraph): AtomicTask[]; getBlockedTasks(tasks: AtomicTask[], _dependencyGraph: OptimizedDependencyGraph): AtomicTask[]; checkTimeoutTransitions(tasks: AtomicTask[]): Promise; getTaskHistory(taskId: string): TaskTransition[]; getTransitionStatistics(): TransitionStatistics; getAutomationMetrics(): AutomationMetrics; dispose(): void; private checkDependencies; private recordTransition; private updateStatistics; private validateConfig; } //# sourceMappingURL=task-lifecycle.d.ts.map