import { EventEmitter } from 'node:events';
type WorkerPoolCallback<R> = (err: Error | null, result: R, startTime: number) => void;
export declare class WorkerPool<T = unknown, R = unknown> extends EventEmitter {
    private processorFile;
    numThreads: number;
    private workers;
    private freeWorkers;
    private workerTaskInfo;
    private tasks;
    get totalTask(): number;
    get totalNum(): number;
    get freeNum(): number;
    constructor(processorFile: string, numThreads?: number);
    addNewWorker(processorFile?: string): void;
    runTask(task: T, callback: WorkerPoolCallback<R>): void;
    removeTask(task: T | ((task: T) => boolean)): number;
    close(): void;
}
export {};
