/** * Task Queue Manager - Main orchestrator for task management */ import { EventEmitter } from 'events'; import { Task } from '@latestgraviton/protocol'; import { TerminalRegistry } from '../terminal/registry'; import { TerminalMatcher } from '../terminal/matcher'; import { QueuedTask, QueueConfig, ExecutionOptions, ExecutionResult, QueueStatistics, TaskUpdate, SchedulingStrategy } from './types'; /** * Task Queue Manager */ export declare class TaskQueueManager extends EventEmitter { private scheduler; private tracker; private retryQueue; private deadLetterQueue; private logger; private config; private isRunning; private cleanupTimer; private retryTimer; private statistics; constructor(registry: TerminalRegistry, matcher: TerminalMatcher, config?: Partial); /** * Setup event handlers */ private setupEventHandlers; /** * Start the queue manager */ start(): Promise; /** * Stop the queue manager */ stop(): Promise; /** * Submit a new task */ submitTask(task: Task, options?: ExecutionOptions): Promise<{ taskId: string; accepted: boolean; reason?: string; }>; /** * Cancel a task */ cancelTask(taskId: string, reason?: string): Promise; /** * Update task progress */ updateTaskProgress(taskId: string, update: TaskUpdate): void; /** * Complete task execution */ completeTask(taskId: string, result: ExecutionResult): void; /** * Handle task failure with retry logic */ private handleTaskFailure; /** * Calculate retry delay with exponential backoff */ private calculateRetryDelay; /** * Process retry queue */ private processRetryQueue; /** * Perform cleanup of old tasks */ private performCleanup; /** * Get task by ID */ getTask(taskId: string): QueuedTask | undefined; /** * Get queue statistics */ getStatistics(): QueueStatistics & { retryQueueSize: number; deadLetterQueueSize: number; totalSubmitted: number; totalRetried: number; }; /** * Get execution metrics */ getExecutionMetrics(): import("./execution-tracker").AggregatedMetrics; /** * Get terminal performance */ getTerminalPerformance(terminalId: string): { tasksExecuted: number; successRate: number; averageExecutionTime: number; currentLoad: number; }; /** * Get tasks in dead letter queue */ getDeadLetterTasks(): QueuedTask[]; /** * Retry a dead letter task */ retryDeadLetterTask(taskId: string): Promise; /** * Update scheduling strategy */ setSchedulingStrategy(strategy: SchedulingStrategy): void; /** * Export queue state */ exportState(): { config: QueueConfig; statistics: { totalSubmitted: number; totalCompleted: number; totalFailed: number; totalRetried: number; }; schedulerState: any; trackerState: { active: import("./execution-tracker").TaskExecutionMetrics[]; completed: import("./execution-tracker").TaskExecutionMetrics[]; history: import("./execution-tracker").ExecutionHistoryEntry[]; }; retryQueue: QueuedTask[]; deadLetterQueue: QueuedTask[]; }; /** * Import queue state */ importState(state: any): void; } //# sourceMappingURL=manager.d.ts.map