import { Observable } from 'rxjs'; import { TaskStatus } from './types'; export declare type TaskContext = any; declare type SkipFn = (ctx: TaskContext) => string | boolean; declare type EnabledFn = (ctx: TaskContext) => boolean; declare type OnErrorFn = (error: Error, ctx: TaskContext) => void; declare type OnDoneFn = (failed: boolean) => void; export interface Task { readonly skip?: SkipFn; readonly enabled?: EnabledFn; readonly task: (ctx: TaskContext) => Promise | Promise | Observable | TaskList | void; readonly title: string; } export interface TaskListOptions { readonly tasks: ReadonlyArray; readonly concurrent?: boolean; readonly onError?: OnErrorFn; readonly onComplete?: () => void; readonly onDone?: OnDoneFn; readonly initialContext?: TaskContext; readonly freshContext?: boolean; readonly collapse?: boolean; } export declare class TaskList { mutableSuperOnError: (error: Error) => void; readonly onError: OnErrorFn; private readonly tasks; private readonly concurrent; private readonly onComplete; private readonly onDone; private readonly initialContext; private readonly freshContext; private readonly statusInternal$; private mutableSubscription; constructor({ tasks, concurrent, onError, onComplete, onDone, initialContext, freshContext, collapse, }: TaskListOptions); readonly status$: Observable>; toPromise(): Promise; abort(): Promise; abort$(): Observable>; setSuperOnError(onError: (error: Error) => void): void; run(ctxIn?: TaskContext): Promise; private runTasks; private checkAll; } export {};