import PublicMessages from '@5minds/processcube_engine_sdk';
import { InternalIdentity as Identity } from '../../Contracts/InternalDataModels/Identity';
import { ProxyConfiguration } from '../../Setups/EngineRouter';
import { Subscription } from '../../Tools/EventAggregator';
import { IamService } from '../../Tools/Iam/index';
export declare class NotificationService {
    private readonly iamService;
    constructor(iamService: IamService);
    onActivityError(callback: PublicMessages.OnActivityErrorCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessDeployed(callback: PublicMessages.OnProcessDeployedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessUndeployed(callback: PublicMessages.OnProcessUndeployedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessIsExecutableChanged(callback: PublicMessages.OnProcessIsExecutableChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobEnabledChanged(callback: PublicMessages.OnCronjobEnabledChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessStarting(callback: PublicMessages.OnProcessStartingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessStarted(callback: PublicMessages.OnProcessStartedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessResumed(callback: PublicMessages.OnProcessStartedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessEnded(callback: PublicMessages.OnProcessEndedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessOwnerChanged(callback: PublicMessages.OnProcessOwnerChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessTerminated(callback: PublicMessages.OnProcessTerminatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessError(callback: PublicMessages.OnProcessErrorCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessInstancesDeleted(callback: PublicMessages.OnProcessInstancesDeletedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobCreated(callback: PublicMessages.OnCronjobCreatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobStopped(callback: PublicMessages.OnCronjobStoppedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobUpdated(callback: PublicMessages.OnCronjobUpdatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobExecuted(callback: PublicMessages.OnCronjobExecutedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobRemoved(callback: PublicMessages.OnCronjobRemovedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityReached(callback: PublicMessages.OnActivityReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityFinished(callback: PublicMessages.OnActivityFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityCanceled(callback: PublicMessages.OnActivityCanceledCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUntypedTaskWaiting(callback: PublicMessages.OnUntypedTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUntypedTaskFinished(callback: PublicMessages.OnUntypedTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onEndEventFinished(callback: PublicMessages.OnEndEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onStartEventFinished(callback: PublicMessages.OnStartEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskWaiting(callback: PublicMessages.OnUserTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskFinished(callback: PublicMessages.OnUserTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskReserved(callback: PublicMessages.OnUserTaskReservedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskReservationCanceled(callback: PublicMessages.OnUserTaskReservationCanceledCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onManualTaskWaiting(callback: PublicMessages.OnManualTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onManualTaskFinished(callback: PublicMessages.OnManualTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventWaiting(callback: PublicMessages.OnBoundaryEventWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventTriggered(callback: PublicMessages.OnBoundaryEventTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventFinished(callback: PublicMessages.OnBoundaryEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateThrowEventTriggered(callback: PublicMessages.OnIntermediateThrowEventTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateCatchEventReached(callback: PublicMessages.OnIntermediateCatchEventReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateCatchEventFinished(callback: PublicMessages.OnIntermediateCatchEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onFlowNodeEventRetrySending(callback: PublicMessages.OnFlowNodeEventRetrySendingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onMessageTriggered(callback: PublicMessages.OnMessageTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onSignalTriggered(callback: PublicMessages.OnSignalTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskCreated(callback: PublicMessages.OnExternalTaskCreatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskLocked(callback: PublicMessages.OnExternalTaskLockedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskUnlocked(callback: PublicMessages.OnExternalTaskUnlockedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    removeSubscription(subscription: Subscription): void;
    onExternalTaskExpired(callback: PublicMessages.OnExternalTaskExpiredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessInstanceMetadataChanged(callback: PublicMessages.OnProcessInstanceMetadataChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCorrelationMetadataChanged(callback: PublicMessages.OnCorrelationMetadataChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onGatewayReached(callback: PublicMessages.OnGatewayReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onGatewayFinished(callback: PublicMessages.OnGatewayFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    private createSubscription;
    private sanitizeMessage;
    private ensureHasClaim;
}
export interface NotificationServiceProxy {
    onActivityError(callback: PublicMessages.OnActivityErrorCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessDeployed(callback: PublicMessages.OnProcessDeployedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessIsExecutableChanged(callback: PublicMessages.OnProcessIsExecutableChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobEnabledChanged(callback: PublicMessages.OnCronjobEnabledChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessUndeployed(callback: PublicMessages.OnProcessUndeployedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessStarting(callback: PublicMessages.OnProcessStartingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessStarted(callback: PublicMessages.OnProcessStartedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessResumed(callback: PublicMessages.OnProcessStartedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessEnded(callback: PublicMessages.OnProcessEndedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessOwnerChanged(callback: PublicMessages.OnProcessOwnerChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessTerminated(callback: PublicMessages.OnProcessTerminatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessError(callback: PublicMessages.OnProcessErrorCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessInstancesDeleted(callback: PublicMessages.OnProcessInstancesDeletedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobCreated(callback: PublicMessages.OnCronjobCreatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobStopped(callback: PublicMessages.OnCronjobStoppedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobUpdated(callback: PublicMessages.OnCronjobUpdatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobExecuted(callback: PublicMessages.OnCronjobExecutedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCronjobRemoved(callback: PublicMessages.OnCronjobRemovedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityReached(callback: PublicMessages.OnActivityReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityFinished(callback: PublicMessages.OnActivityFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onActivityCanceled(callback: PublicMessages.OnActivityCanceledCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUntypedTaskWaiting(callback: PublicMessages.OnUntypedTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUntypedTaskFinished(callback: PublicMessages.OnUntypedTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onEndEventFinished(callback: PublicMessages.OnEndEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onStartEventFinished(callback: PublicMessages.OnStartEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskWaiting(callback: PublicMessages.OnUserTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskFinished(callback: PublicMessages.OnUserTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskReserved(callback: PublicMessages.OnUserTaskReservedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onUserTaskReservationCanceled(callback: PublicMessages.OnUserTaskReservationCanceledCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onManualTaskWaiting(callback: PublicMessages.OnManualTaskWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onManualTaskFinished(callback: PublicMessages.OnManualTaskFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventWaiting(callback: PublicMessages.OnBoundaryEventWaitingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventTriggered(callback: PublicMessages.OnBoundaryEventTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onBoundaryEventFinished(callback: PublicMessages.OnBoundaryEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateThrowEventTriggered(callback: PublicMessages.OnIntermediateThrowEventTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateCatchEventReached(callback: PublicMessages.OnIntermediateCatchEventReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onIntermediateCatchEventFinished(callback: PublicMessages.OnIntermediateCatchEventFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onFlowNodeEventRetrySending(callback: PublicMessages.OnFlowNodeEventRetrySendingCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onMessageTriggered(callback: PublicMessages.OnMessageTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onSignalTriggered(callback: PublicMessages.OnSignalTriggeredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskCreated(callback: PublicMessages.OnExternalTaskCreatedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskLocked(callback: PublicMessages.OnExternalTaskLockedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onExternalTaskUnlocked(callback: PublicMessages.OnExternalTaskUnlockedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    removeSubscription(subscription: Subscription): void;
    onExternalTaskExpired(callback: PublicMessages.OnExternalTaskExpiredCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onProcessInstanceMetadataChanged(callback: PublicMessages.OnProcessInstanceMetadataChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onCorrelationMetadataChanged(callback: PublicMessages.OnCorrelationMetadataChangedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onGatewayReached(callback: PublicMessages.OnGatewayReachedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
    onGatewayFinished(callback: PublicMessages.OnGatewayFinishedCallback, subscribeOnce: boolean, identity: Identity): Promise<Subscription>;
}
export declare const NotificationServiceProxyConfiguration: ProxyConfiguration;
