import { WorldLocals } from '../config/WorldEnv.js'; import { WorkerProxy } from './WorkerProxy.js'; import { GenericTask } from './TaskProcessing.js'; /** * This will manage pool of worker in web or node environment, * tasks enqueueing, dispatching */ export declare class WorkerPool { processingQueue: GenericTask[]; workerPool: WorkerProxy[]; processedCount: number; ready: boolean; workerPoolName: string; constructor(workerPoolName?: string); initPoolEnv(poolSize: number, worldLocalEnv: WorldLocals, externalWorkerProvider?: () => Worker): Promise; get availableUnit(): WorkerProxy | undefined; get nextTask(): GenericTask | undefined; get pendingTasks(): string[]; /** * Should be called any time task priority changes * or new task is added to the queue */ reorderTasks(): void; enqueueTasks(...tasks: GenericTask[]): void; /** * Dispatch items from the queue as much as possible to available workers */ processQueue(): void; }