interface Task { id: number; type: 'format' | 'compress' | 'process' | 'encodeProtobufAndCompress'; data: any; options?: any; resolve: (value: T) => void; reject: (error: Error) => void; } export interface WorkerPoolConfig { readonly maxWorkers?: number; readonly maxQueueSize?: number; readonly taskTimeout?: number; readonly workerScript?: string; } export interface WorkerMetrics { readonly activeWorkers: number; readonly queueLength: number; readonly totalTasks: number; readonly completedTasks: number; readonly failedTasks: number; } export declare class WorkerPool { private workers; private availableWorkers; private queue; private active; private readonly maxWorkers; private readonly maxQueueSize; private readonly taskTimeout; private readonly workerScript; private totalTasks; private completedTasks; private failedTasks; private destroyed; private destroyPromise?; constructor(config?: WorkerPoolConfig); private createWorker; private settle; private removeWorker; execute(type: Task['type'], data: any, options?: any): Promise; private drainQueue; getMetrics(): WorkerMetrics; destroy(): Promise; } export {}; //# sourceMappingURL=WorkerPool.d.ts.map