import { IFlowNodeHandler } from ".";
import { INodeDefEntity, IProcessTokenEntity, IProcessDefEntity } from "@process-engine/process_engine_contracts";
import { ExecutionContext } from "@essential-projects/core_contracts";
import { NextFlowNodeInfo } from "..";
export declare abstract class FlowNodeHandler implements IFlowNodeHandler {
    execute(flowNode: INodeDefEntity, processToken: IProcessTokenEntity, context: ExecutionContext): Promise<NextFlowNodeInfo>;
    protected abstract executeIntern(flowNode: INodeDefEntity, processToken: IProcessTokenEntity, context: ExecutionContext): Promise<NextFlowNodeInfo>;
    protected getNextFlowNodeFor(flowNode: INodeDefEntity, context: ExecutionContext): Promise<INodeDefEntity>;
    protected getFlowNodeById(flowNodeId: string, processDefinition: IProcessDefEntity): INodeDefEntity;
    private getNextFlowNodeId(flowNodeId, processDefinition, context);
    private afterExecute(flowNode, processToken, context);
}
