/** * Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal */ import { Task } from '../task.js'; import { RuntimeContext } from './runtime-context.js'; import { Progress } from './progress.js'; interface ExposedTask extends Task { f: (ctx: RuntimeContext) => Promise; onAbort?: () => void; } export declare function ExecuteObservable(task: Task, observer: Progress.Observer, updateRateMs?: number): Promise; export declare function CreateObservableCtx(task: Task, observer: Progress.Observer, updateRateMs?: number): ObservableRuntimeContext; export declare function ExecuteInContext(ctx: RuntimeContext, task: Task): Promise; export declare function ExecuteObservableChild(ctx: RuntimeContext, task: Task, progress?: string | Partial): Promise; interface ProgressInfo { updateRateMs: number; lastNotified: number; observer: Progress.Observer; abortToken: { abortRequested: boolean; treeAborted: boolean; reason: string; }; taskId: number; root: Progress.Node; tryAbort: (reason?: string) => void; } declare function ProgressInfo(task: Task, observer: Progress.Observer, updateRateMs: number): ProgressInfo; declare class ObservableRuntimeContext implements RuntimeContext { isSynchronous: boolean; isExecuting: boolean; lastUpdatedTime: number; isAborted?: boolean; node: Progress.Node; info: ProgressInfo; onChildrenFinished?: () => void; private checkAborted; get shouldUpdate(): boolean; private updateProgress; update(progress?: string | Partial, dontNotify?: boolean): Promise | void; runChild(task: ExposedTask, progress?: string | Partial): Promise; constructor(info: ProgressInfo, node: Progress.Node); } export {};