import { Task } from "./Task";
interface Thread {
    id: number;
    task: Task;
    worker: Worker;
    workerCtor: (new () => Worker);
}
/** 池化模型
 */
declare class WorkerPool {
    /** 线程池 */
    private _Pool;
    /** 调度队列 */
    private _TaskQueue;
    /** 最大线程数 */
    THREAD_MAX_COUNT: number;
    /** 线程ID */
    private threadId;
    get Pool(): Thread[];
    get TaskQueue(): Task[];
    /** 添加任务 */
    AppendTask(task: Task): void;
    TerminateTask(task: Pick<Task, "key" | "workerCtor">): void;
    /** 更换任务 */
    UpdateTask(thread: Thread, task: Task): void;
    /** 循环调度 */
    Loop(): void;
    /** 添加任务的事件 */
    AppendEvent(task: Task): void;
    /** 执行任务的事件 */
    ExecuteEvent(task: Task): void;
    /** 更换任务的事件 */
    UpdateEvent(task: Task): void;
    /** 结束任务的事件 */
    StopEvent(task: Task): void;
    /** 关闭任务的事件 */
    CloseEvent(task: Pick<Task, "key" | "workerCtor">): void;
    /** 获取闲置线程 */
    GetFreeThread(): Thread | undefined;
}
/**
 * 线程池
 * @example
 * const task = {
 *   data: 100, // 输入的数据
 *   then: e => console.log(e.data) // 输出的结果
 * };
 * // 添加任务
 * THREAD_POOL.AppendTask(task);
*/
export declare const WORKER_POOL: WorkerPool;
export {};
//# sourceMappingURL=WorkerPool.d.ts.map