import { FlowNodeInstance, Model, Subscription } from '@5minds/processcube_engine_sdk';
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 InclusiveJoinGatewayHandler extends GatewayHandler<Model.Gateways.InclusiveGateway> {
    private isInterrupted;
    private relevantFlowNodeIds;
    private incomingFlowNodeIds;
    private relevantEventsSubscriptions;
    constructor(eventMiddlewareHandler: EventMiddlewareHandler, flowNodeHandlerFactory: FlowNodeHandlerFactory, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, inclusiveGatewayModel: Model.Gateways.InclusiveGateway, processInstance: ProcessInstance);
    private get inclusiveGateway();
    protected beforeExecute(resolveFunction?: Function, rejectFunction?: Function, resumedFlowNodeInstances?: Array<FlowNodeInstance>): Promise<void>;
    protected startExecution(): Promise<Array<Model.Base.FlowNode>>;
    protected executeHandler(): Promise<Array<Model.Base.FlowNode>>;
    protected afterExecute(): Promise<void>;
    protected persistOnExit(): Promise<void>;
    private aggregateResults;
    private subscribeToRelevantFlowNodeEvents;
    private getRelevantEventSubscriptionHandler;
    protected subscribeToProcessKilledEvent(rejectionFunction: Function): Subscription;
    protected subscribeToProcessError(rejectionFunction: Function): Subscription;
    protected subscribeToTerminateEndEventReached(resolveFunction: Function): Subscription;
    private cleanupSubscriptions;
    private removeInstanceFromIocContainer;
}
