import { BaseError, Model } from '@5minds/processcube_engine_sdk';
import { FlowNodeInstanceTypeSpecificData } from '../../../Contracts/index';
import { EventMiddlewareHandler, FlowNodeInstanceDatabaseAdapter } from '../../../Tools/index';
import { ProcessInstance } from '../../ProcessInstance';
import { FlowNodeHandlerFactory } from '../FlowNodeHandlerFactory';
import { EventHandler } from './EventHandler';
export declare class EndEventHandler extends EventHandler<Model.Events.EndEvent> {
    protected eventName: string;
    protected customCorrelationId: string;
    constructor(eventMiddlewareHandler: EventMiddlewareHandler, flowNodeHandlerFactory: FlowNodeHandlerFactory, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, endEventModel: Model.Events.EndEvent, processInstance: ProcessInstance, namespace?: string);
    protected get endEvent(): Model.Events.EndEvent;
    protected beforeExecute(): Promise<void>;
    protected persistOnCancel(typeData?: FlowNodeInstanceTypeSpecificData): Promise<void>;
    protected persistOnExit(typeData?: FlowNodeInstanceTypeSpecificData): Promise<void>;
    protected persistOnError(error: BaseError, typeData?: FlowNodeInstanceTypeSpecificData): Promise<void>;
    protected persistOnTerminate(typeData?: FlowNodeInstanceTypeSpecificData): Promise<void>;
    protected startExecution(): Promise<Array<Model.Base.FlowNode>>;
    protected executeHandler(): Promise<Array<Model.Base.FlowNode>>;
    protected publishEndEventFinishedNotification(): Promise<void>;
    protected executeExpression(expression: string, allowNonObjectResults?: boolean, dataContract?: string): Promise<string>;
}
