import { BaseError, FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk'; import { FlowNodeInstanceTypeSpecificData } from '../../../Contracts'; import { FlowNodeInstanceDatabaseAdapter } from '../../../Tools/DatabaseAdaptersSequelize/index'; import { EventMiddlewareHandler } from '../../../Tools/EventMiddlewareHandler'; import { ProcessInstance } from '../../ProcessInstance'; import { FlowNodeHandlerFactory } from '../FlowNodeHandlerFactory'; import { GatewayHandler } from './GatewayHandler'; export declare class EventBasedGatewayHandler extends GatewayHandler { private triggered; private connectedCatchEvents; constructor(eventMiddlewareHandler: EventMiddlewareHandler, flowNodeHandlerFactory: FlowNodeHandlerFactory, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, eventBasedGatewayModel: Model.Gateways.EventBasedGateway, processInstance: ProcessInstance); get hasBeenTriggered(): boolean; private get eventBasedGateway(); private get iocKey(); /** * Takes a Catch Event Handler Instance ID and cancels all OTHER connected catch event instances, * if the given Flow Node Instance ID is elligble for triggering the gateway. * * @param flowNodeInstanceId The Instance ID of the triggering Catch Event. * @returns True, if the gateway was triggered. */ evaluateAndTriggerCatchEvent(flowNodeInstanceId: string): Promise; protected beforeExecute(rejectFunction?: Function, resumedFlowNodeInstances?: FlowNodeInstance[]): Promise; protected afterExecute(): Promise; protected persistOnExit(): Promise; protected persistOnError(error: BaseError, typeData?: TFlowNodeData): Promise; protected persistOnTerminate(typeData?: TFlowNodeData): Promise; protected startExecution(): Promise>; protected executeHandler(): Promise>; protected resumeAfterExit(allFlowNodeInstances: Array): Promise>; protected handleNextFlowNode(nextFlowNode: Model.Base.FlowNode, allFlowNodeInstancesToResume?: Array): Promise; private cleanup; }