import { TaskResolverMap, TaskRunStatus, ValueMap, TaskMap } from '../types';
import { Flow } from './flow';
import { FlowState } from './flow-state';
import { ProcessManager } from './process-manager';
import { FlowOptions, FlowSpec } from './specs';
import { Task } from './task';
export declare class FlowRunStatus {
    static nextId: number;
    flow: Flow;
    id: number;
    processManager: ProcessManager;
    tasksReady: Task[];
    tasksByReq: {
        [req: string]: TaskMap;
    };
    taskProvisions: string[];
    resolvers: TaskResolverMap;
    expectedResults: string[];
    results: ValueMap;
    context: ValueMap;
    runOptions: ValueMap;
    finishResolve: (result: ValueMap) => void;
    finishReject: (error: Error) => void;
    finishPromise: Promise<ValueMap>;
    options: FlowOptions;
    states: {
        [stateKey: string]: FlowState;
    };
    spec: FlowSpec;
    state: FlowState;
    tasks: TaskMap;
    constructor(flow: Flow, spec: FlowSpec, runStatus?: SerializedFlowRunStatus);
    initRunStatus(spec: FlowSpec, runState?: SerializedFlowRunStatus): void;
    fromSerializable(runState: SerializedFlowRunStatus): void;
    toSerializable(): SerializedFlowRunStatus;
}
export interface SerializedFlowRunStatus {
    id: number;
    nextProcessId: number;
    tasksReady: string[];
    tasksByReq: {
        [req: string]: string[];
    };
    taskProvisions: string[];
    expectedResults: string[];
    options: FlowOptions;
    results: ValueMap;
    context: ValueMap;
    taskStatuses: {
        [taskCode: string]: TaskRunStatus;
    };
}
