import { AtomicTask } from '../types/task.js'; import { ProjectContext } from '../types/project-context.js'; export interface StreamConfig { batchSize: number; streamInterval: number; maxQueueSize: number; priorityThreshold: number; enableRealTimeStreaming: boolean; loadBalancingEnabled: boolean; } export interface StreamStatus { isActive: boolean; queuedTasks: number; streamedTasks: number; failedTasks: number; averageStreamTime: number; lastStreamAt?: Date; } export interface TaskClaim { taskId: string; agentId: string; claimedAt: Date; expiresAt: Date; status: 'claimed' | 'released' | 'expired'; } export type StreamEvent = 'task_queued' | 'task_streamed' | 'task_claimed' | 'task_released' | 'stream_started' | 'stream_stopped' | 'queue_full' | 'agent_unavailable'; export interface StreamEventData { event: StreamEvent; taskId?: string; agentId?: string; timestamp: Date; metadata?: Record; } export declare class TaskStreamer { private static instance; private taskQueue; private claims; private agentOrchestrator; private taskScheduler; private memoryManager; private config; private streamTimer?; private status; private eventListeners; private constructor(); static getInstance(config?: Partial): TaskStreamer; startStreaming(): Promise; stopStreaming(): Promise; queueTask(task: AtomicTask, context: ProjectContext, epicTitle?: string): Promise; claimTask(taskId: string, agentId: string): Promise; releaseTask(taskId: string, agentId: string): Promise; getReadyTasks(limit?: number): Promise; getStatus(): StreamStatus; getQueueInfo(): { totalTasks: number; highPriorityTasks: number; claimedTasks: number; oldestTaskAge: number; }; addEventListener(event: StreamEvent, listener: (data: StreamEventData) => void): void; removeEventListener(event: StreamEvent, listener: (data: StreamEventData) => void): void; private processTaskQueue; private calculateTaskPriority; private insertTaskByPriority; private removeTaskFromQueue; private checkDependencies; private releaseAllClaims; private emitEvent; destroy(): void; } //# sourceMappingURL=task-streamer.d.ts.map