import { Pool } from './pool'; import { TaskExecutor } from './taskExecutor'; import { Async, Func, NodeWorkerSettings, TaskFuncThis } from './types'; export declare type DynamicPoolExecOptions>, TWorkerData = any> = { /** * Data to pass into workers. * @deprecated since version 1.4.0. Please use parameter instead. */ workerData?: TWorkerData; timeout?: number; } & ({ /** Function to be executed. */ task: () => ReturnType; } | { /** Function to be executed. */ task: TTask; /** Parameter for task function. */ param: Parameters[0]; }); /** Executor for DynamicPool. Used to apply some advanced settings to a task. */ export declare class DynamicTaskExecutor extends TaskExecutor { private code; constructor(dynamicPool: DynamicPool, task: Function); /** Execute this task with the parameter provided. */ exec: Async; } /** * Threads pool that can run different function * each call. */ export declare class DynamicPool extends Pool { constructor( /** Number of workers. */ size: number, /** Some advanced settings. */ opt?: NodeWorkerSettings); /** * Choose a idle worker to execute the function * with context provided. */ exec(opt: DynamicPoolExecOptions): ReturnType>; /** * Create a task executor of this pool. * This is used to apply some advanced settings to a task. */ createExecutor(task: TTask): DynamicTaskExecutor; }