import { Context } from '../core/context'; import { DefaultEngineEvents } from './events'; import { EngineData, NodeData, WorkerOutputs } from '../core/types'; declare enum EngineState { AVAILABLE = 0, PROCESSED = 1, ABORT = 2 } declare type EngineNode = NodeData & { busy: boolean; unlockPool: (() => void)[]; outputData: WorkerOutputs; }; export declare class Engine extends Context { args: any[]; data: EngineData | null; state: EngineState; onAbort: () => void; constructor(id: string); clone(): Engine; private processStart; private processDone; abort(): Promise; private lock; unlock(node: EngineNode): void; private processWorker; private processNode; private extractInputData; private forwardProcess; copy(data: EngineData): EngineData; throwError(message: string, data?: any): Promise; validate(data: EngineData): Promise; private processStartNode; private processUnreachableNodes; process(data: EngineData, startId?: number | null, ...args: T): Promise<"success" | "aborted" | undefined>; } export {};