///
import { EventEmitter } from 'events';
export declare type Task = () => Promise;
export interface TaskOutput {
task: Task;
output?: T;
}
export default class TaskManager extends EventEmitter {
private maxParallel;
private tasks;
private remainingTasks;
private processingTasks;
constructor(maxParallel?: number);
add(task: Task): void;
execute(): void;
private onTaskProcessingFinished;
private startTaskProcessing;
private emitEndIfAllFinished;
}