export declare class WorkerThreadPool {
    private maximumNumberOfWorker;
    private scriptPath;
    private _workers;
    private _free;
    private _busy;
    private _queue;
    /**
     *
     * @param maxSize maximum number of worker
     * @param scriptPath javascript path for worker execute
     */
    constructor(maxSize: number, scriptPath: string);
    get length(): number;
    get busy(): boolean;
    /**
     *
     * @param inputData Input data send to worker
     * @param resolve callback from worker
     */
    Enqueue<T, M>(inputData: T, resolve: (result: M) => void): void;
    /**
     * Promise-based version of Enqueue for use with async/await
     */
    EnqueueAsync<T, M>(inputData: T): Promise<M>;
    private _PumpQueue;
    dispose(): void;
}
