import { Observable } from 'rxjs'; import { TaskInterface } from './definitions'; /** * Task queue is used to run async task sequentially * * Usage: * ```typescript * const taskQueue = new TaskQueue(); * * taskQueue.addExecutor(() => of('Task 1 finished').pipe(delay(100))).subscribe(console.log); * taskQueue.addExecutor(() => of('Task 2 finished').pipe(delay(1))).subscribe(console.log); * * // Will output * Task 1 finished * Task 2 finished * ``` */ export declare class TaskQueue { tasks: TaskInterface[]; private _subscription?; private set workingState(value); currentTask?: TaskInterface; constructor(); addExecutor(executor: () => Observable): Observable; addTask(task: TaskInterface): Observable; cancelAll(withError?: Error): void; private processNext; }