/// import { EventEmitter } from 'events'; import { ITask, ITaskChange, ITaskWorker, ITasksGroupFilter, ITaskHandler } from './interfaces'; export declare interface TasksManager { on(event: 'change', listener: (e: ITaskChange) => void): this; } /** * Allows to create multiple channels with given groups. */ export declare class TasksManager extends EventEmitter { private workers; protected queue: ITask[]; protected taskCounter: number; protected unavailableWorkers: number; workerFilter: ITasksGroupFilter; getWorkerInstance: (index: number, group: string) => K; protected getWorker(group: string): ITaskWorker; protected getWorkers(indexes?: number[]): ITaskWorker[]; setWorkers(...workers: string[]): void; handle(fn: ITaskHandler, group?: string, taskId?: number): Promise; protected process: (task: ITask, worker?: ITaskWorker) => Promise; protected processNext(): Promise; protected workersCheck(): void; pauseWorkers(...indexes: number[]): void; resumeWorkers(...indexes: number[]): void; deleteTasks(...ids: number[]): void; deleteAllTasks(): void; createTaskId(): number; protected finishTask(id: number, data?: any, error?: Error): void; }