import { Container } from 'inversify'; import { BpmnType, EventType, FlowNodeInstanceState, Identity } from '@5minds/processcube_engine_sdk'; import { MessageEventReachedMessageInternal } from '../Contracts/index'; import { FlowNodeInstanceDatabaseAdapter, IdentityService, ProcessDefinitionMediator, ProcessInstanceDatabaseAdapter } from '../Tools'; import { ExecuteProcessService } from './ExecuteProcessService'; import { ProcessTokenService } from './ProcessTokenService'; export type MessagePayload = { correlationId?: string; processDefinitionId?: string; processModelId?: string; processModelName?: string; processInstanceId?: string; parentProcessInstanceId?: string; flowNodeId?: string; flowNodeName?: string; flowNodeType?: BpmnType; flowNodeInstanceId?: string; previousFlowNodeInstanceId?: string; processInstanceOwner?: Identity; currentToken?: any; eventType?: EventType; eventName?: string; eventId?: string; identity?: Identity; triggerValue?: string; targetProcessInstanceId?: string; customCorrelationId?: string; flowNodeInstanceState?: FlowNodeInstanceState; messageReference: string; messageChannel?: string; }; export type TriggerMessageArgs = { messageReference: string; identity: Identity; flowNodeInstanceId?: string; customCorrelationId?: string; sourceCorrelationId?: string; token?: any; triggerValue?: string; messageChannel?: string; }; export declare class MessageEventService { private readonly container; private readonly logger; private readonly processTokenService; private subscriptions; private processDefinitionMediator; private currentlyDeployedMessageCatchEventDefinitions; private executeProcessService; private internalIdentity; private flowNodeInstanceAdapter; private readonly processInstanceAdapter; constructor(executeProcessService: ExecuteProcessService, processDefinitionMediator: ProcessDefinitionMediator, processTokenService: ProcessTokenService, identityService: IdentityService, container: Container, flowNodeInstanceAdapter: FlowNodeInstanceDatabaseAdapter, processInstanceAdapter: ProcessInstanceDatabaseAdapter); init(): Promise; throwMessage(data: MessagePayload, awaitAcknowledgement?: boolean): Promise; throwStartMessage(data: MessagePayload, awaitAcknowledgement?: boolean): Promise; onMessage(messageReference: string, callback: (message: MessageEventReachedMessageInternal) => Promise, subscribeOnce?: boolean, processInstanceId?: string, triggerValue?: string, messageChannel?: string): string; unsubscribe(subscriptionId: string): void; acknowledge(eventId: string): void; private startProcessesWithMessageStartEvent; private getProcessModelsToStart; private filterProcessesWithWaitingCatchEvents; private filterAlreadyStartedProcessInstances; private parseEventPayloadTriggerValue; private refreshCatchEventDefinitions; private computeTriggerValuesForMessageReference; private parseTriggerValueExpressions; private distinctTriggerValues; }