import { Identity } from '@5minds/processcube_engine_sdk';
import { EscalationEventReachedMessageInternal } from '../Contracts/InternalMessages/Payloads/EscalationEventReached';
import { EventMessageInternal } from '../Contracts/index';
import { ProcessInstance } from './ProcessInstance';
export type EscalationPayload = EventMessageInternal & {
    escalationCode: string;
    processInstance: ProcessInstance;
};
export type TriggerEscalationArgs = {
    escalationCode: string;
    identity: Identity;
    flowNodeInstanceId?: string;
    token?: any;
};
export declare class EscalationEventService {
    private subscriptions;
    constructor();
    throwEscalation(escalation: EscalationPayload): Promise<void>;
    onEscalation(escalationCode: string, processInstance: ProcessInstance, callback: (escalation: EscalationEventReachedMessageInternal) => Promise<void>, subscribeOnce?: boolean): string;
    unsubscribe(subscriptionId: string): void;
    private findAndTriggerSubscription;
    private filterSubscriptionsByProcessInstanceId;
    private sortSubscriptionKeys;
}
