import { Context, GlobalCheckpoint, ICheckpointer, Nodes, Metadata, EventRegex, WorkflowKey, Extensions, MethodsOROptions } from "../types";
import { ProviderClass } from "../io/providerClass";
import DatastoreService from "./store";
import { OptionsWorkFlow } from "..";
export declare const EVENTS: EventRegex;
export declare const EVENTSREGEXP: RegExp;
export declare class Workflow<TName extends string, TProvider extends Partial<ProviderClass> = Partial<ProviderClass>> {
    key: WorkflowKey;
    metadata: Metadata<TName>;
    child: Array<Nodes>;
    options: OptionsWorkFlow<TName>;
    private callbackMap;
    private static idCounter;
    private signal;
    private logger;
    ctx: Context;
    provider: TProvider;
    constructor(key?: WorkflowKey, options?: OptionsWorkFlow<TName>);
    set signal_controller(signal: AbortSignal);
    private executeNode;
    executeNodeSafe(node: Nodes, stateHandler: DatastoreService, checkpointer: ICheckpointer, messages: string[], ctx: Context, extensions: Extensions<TProvider>): Promise<{
        error?: Error;
        success: boolean;
    }>;
    onError(error: Error, args: GlobalCheckpoint, checkpointer: ICheckpointer): Promise<void>;
    getNextAvailableNode(currentNodeId: number | string): Nodes | null;
    private delay;
    getNodeById(nodeId: number | string): Nodes | null;
    addAction(cbOrOptions: string | MethodsOROptions<TProvider>, callback?: MethodsOROptions<TProvider>): this;
    private createInternalMethods;
    private end;
    private goto;
    private extractRouteInfo;
}
