import { AnyValue, FlowedLogEntry, FlowStateEnum, OptPromise, TaskResolverExecutor, TaskResolverMap, ValueMap } from '../../types';
import { FlowRunStatus, SerializedFlowRunStatus } from '../flow-run-status';
import { Task } from '../task';
import { TaskProcess } from '../task-process';
import { IFlow } from './iflow';
export declare abstract class FlowState implements IFlow {
    protected static builtInResolvers: TaskResolverMap;
    protected runStatus: FlowRunStatus;
    constructor(runStatus: FlowRunStatus);
    start(params: ValueMap, expectedResults: string[], resolvers: TaskResolverMap, context: ValueMap, _options?: ValueMap): OptPromise<ValueMap>;
    finished(_error?: Error | boolean): void;
    pause(): Promise<ValueMap>;
    paused(_error?: Error | boolean): void;
    resume(): Promise<ValueMap>;
    stop(): Promise<ValueMap>;
    stopped(_error?: Error | boolean): void;
    reset(): void;
    abstract getStateCode(): FlowStateEnum;
    execFinishResolve(): void;
    execFinishReject(error: Error): void;
    isRunning(): boolean;
    setExpectedResults(expectedResults: string[]): void;
    getResults(): ValueMap;
    setResolvers(resolvers: TaskResolverMap): void;
    setContext(context: ValueMap): void;
    setRunOptions(options: ValueMap): void;
    supplyParameters(params: ValueMap): void;
    createFinishPromise(): void;
    getResolverForTask(task: Task): TaskResolverExecutor;
    getResolverByName(name: string): TaskResolverExecutor | null;
    getResolvers(): TaskResolverMap;
    supplyResult(resultName: string, result: AnyValue): void;
    getStateInstance(state: FlowStateEnum): FlowState;
    startReadyTasks(): void;
    setState(newState: FlowStateEnum): void;
    getSerializableState(): SerializedFlowRunStatus;
    protected processFinished(process: TaskProcess, error: Error | boolean, stopFlowExecutionOnError: boolean): void;
    protected postProcessFinished(_error: Error | boolean, _stopFlowExecutionOnError: boolean): void;
    protected createTransitionError(transition: string): Error;
    protected createMethodError(method: string): Error;
    debug(formatter: string, ...args: AnyValue[]): void;
    static formatDebugMessage({ n, m, l, e }: {
        n?: number;
        m: string;
        mp?: ValueMap;
        l?: string;
        e?: string;
    }): string;
    static createLogEntry({ n, m, mp, l, e, pid, task }: {
        n?: number;
        m: string;
        mp?: ValueMap;
        l?: string;
        e?: string;
        pid?: number;
        task?: AnyValue;
    }, flowStatus?: FlowRunStatus): FlowedLogEntry;
    log({ n, m, mp, l, e, pid, task }: {
        n?: number;
        m: string;
        mp?: ValueMap;
        l?: string;
        e?: string;
        pid?: number;
        task?: AnyValue;
    }): void;
}
