export interface TaskDescriptor { exec: (result?: any) => any; label?: string; } type AddTaskArg = TaskDescriptor['exec'] | TaskDescriptor; export declare class TaskRunner { private readonly options?; private readonly _parallel; private readonly _series; private _running; constructor(options?: { /** * 队列开始执行任务 */ onStart?: () => void; /** * 队列执行进度报告 */ onProgress?: (percent: number, task: TaskDescriptor) => void; /** * 出现错误 * - 并行任务可能会调用多次此函数 * - 顺序任务最多只会调用一次此函数,且会终止后续任务执行 */ onError?: (error: Error) => void; /** * 队列任务全部以成功状态完成 */ onSuccess?: () => void; /** * 队列执行结束 */ onFinish?: () => void; }); private _add; parallel(task: AddTaskArg | AddTaskArg[]): this; series(task: AddTaskArg | AddTaskArg[]): this; private _progress; private _total; private _size; private _percent; private _isFinish; private _newTaskAdded; private _progressReport; private _hasError; private _error; private _runParallel; private _seriesQueueRunning; private _runSeries; private _runAllTasks; run(): this; } export {};