import { ExecutionContext } from "@essential-projects/core_contracts";
import { IProcessDefEntity, IProcessEntity } from '@process-engine/process_engine_contracts';
import { IExecuteProcessService } from "./iexecute_process_service";
import { IFlowNodeHandlerFactory } from "./handler/iflow_node_handler_factory";
import { IDatastoreService } from "@essential-projects/data_model_contracts";
import { IMessageBusService } from "@essential-projects/messagebus_contracts";
export declare class ExecuteProcessService implements IExecuteProcessService {
    private flowNodeHandlerFactory;
    private datastoreService;
    private messageBusService;
    constructor(flowNodeHandlerFactory: IFlowNodeHandlerFactory, datastoreService: IDatastoreService, messageBusService: IMessageBusService);
    start(context: ExecutionContext, processDefinition: IProcessDefEntity, processInstance: IProcessEntity): Promise<void>;
    private getStartEventDef(context, processDefinition);
    private executeFlowNode(flowNode, processToken, context);
    private end(processInstance, processToken, context);
    private createProcessToken(context);
}
