import { FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk';
import { FlowNodeInstanceTypeSpecificData } from '../../../Contracts';
import { FlowNodeHandler } from '../FlowNodeHandler';
/**
 * This is the base handler for events.
 */
export declare abstract class EventHandler<TFlowNode extends Model.Base.FlowNode> extends FlowNodeHandler<TFlowNode> {
    protected triggeredByFlowNodeInstanceId: string;
    protected abortSignal: AbortController;
    protected beforeExecute(resolveFunction?: Function, rejectFunction?: Function): Promise<void>;
    protected persistOnCancel<TFlowNodeData extends FlowNodeInstanceTypeSpecificData>(typeData?: TFlowNodeData): Promise<void>;
    execute(previousFlowNodeInstanceId?: string, previousResult?: any, executionCanceledCallback?: Function, triggeredByFlowNodeInstanceId?: string): Promise<void>;
    resume(flowNodeInstanceForHandler: FlowNodeInstance, allFlowNodeInstances: Array<FlowNodeInstance>, resumptionCanceledCallback?: Function): Promise<void>;
    protected resumeFromState(flowNodeInstance: FlowNodeInstance, processFlowNodeInstances?: Array<FlowNodeInstance>, resumptionCanceledCallback?: Function): Promise<Array<Model.Base.FlowNode>>;
    protected passTriggerThroughEventBasedGatwwayIfNecessary(): Promise<boolean>;
    protected publishIntermediateThrowEventTriggeredNotification(): void;
    protected publishIntermediateCatchEventReachedNotification(): void;
    protected publishIntermediateCatchEventFinishedNotification(): void;
    private getEventName;
    private throwMultipleSubsequentFlowNodesError;
}
