type WorkerConstructorParam = (new () => Worker) | {
    scriptURL: string | URL;
    options?: WorkerOptions | undefined;
};
type Fn = (this: ThreadPool) => void;
/**
 * @link https://chat.googlegemini.co/
 * @description 线程池，由AI生成大致框架
 * @author jiannan.jiao
 * @date 02/02/2024
 * @export
 * @class ThreadPool
 */
export default class ThreadPool {
    private maxWorkers;
    private taskQueue;
    private promises;
    private idleWorkers;
    private workers;
    private WorkerConstructor;
    private subscription;
    completionWorks: Fn | undefined;
    constructor(WorkerConstructor: WorkerConstructorParam, maxWorkers?: number, completionWorks?: Fn);
    /**
     * @description 添加新任务
     * @author jiannan.jiao
     * @date 02/02/2024
     * @param {*} data
     * @returns {*}  {Promise<any>}
     * @memberof ThreadPool
     */
    addTask(data: any): Promise<any>;
    addWorker(worker: Worker): void;
    /**
     * @description 分配任务
     * @author jiannan.jiao
     * @date 02/02/2024
     * @memberof ThreadPool
     */
    assignTask(): void;
    createWorker(): Worker;
    onMessage(event: MessageEvent<any>): void;
    onError(event: ErrorEvent): void;
    completionWork(idleWorker: Worker): void;
    isWorking(): number;
    addSubscription(fn: Fn): void;
    removeSubscription(fn: Fn): void;
    terminateAllWorkers(): void;
}
export {};
