import { Container } from 'inversify'; import { BpmnType, EventType, FlowNodeInstanceState, Identity } from '@5minds/processcube_engine_sdk'; import { SignalEventReachedMessageInternal } from '../Contracts/index'; import { IdentityService, ProcessInstanceDatabaseAdapter } from '../Tools'; import { ProcessDefinitionMediator } from '../Tools/ProcessDefinitionMediator'; import { ExecuteProcessService } from './ExecuteProcessService'; import { ProcessTokenService } from './ProcessTokenService'; export type SignalPayload = { 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; signalReference: string; signalChannel?: string; }; export type TriggerSignalArgs = { signalReference: string; identity: Identity; flowNodeInstanceId?: string; customCorrelationId?: string; sourceCorrelationId?: string; token?: any; triggerValue?: string; signalChannel?: string; }; export declare class SignalEventService { private readonly processDefinitionMediator; private readonly container; private readonly logger; private readonly processTokenService; private subscriptions; private currentlyDeployedSignalCatchEventDefinitions; private executeProcessService; private internalIdentity; private readonly processInstanceAdapter; constructor(processDefinitionMediator: ProcessDefinitionMediator, executeProcessService: ExecuteProcessService, identityService: IdentityService, processTokenService: ProcessTokenService, container: Container, processInstanceAdapter: ProcessInstanceDatabaseAdapter); init(): Promise; throwSignal(data: SignalPayload, awaitAcknowledgement?: boolean, eventId?: string): Promise; throwStartSignal(data: SignalPayload, awaitAcknowledgement?: boolean): Promise; onSignal(signalReference: string, callback: (signal: SignalEventReachedMessageInternal) => Promise, subscribeOnce?: boolean, processInstanceId?: string, triggerValue?: string, signalChannel?: string): string; unsubscribe(subscriptionId: string): void; acknowledge(eventId: string): void; private startProcessesWithSignalStartEvent; private getProcessModelsToStart; private filterAlreadyStartedProcessInstances; private refreshCatchEventDefinitions; private computeTriggerValuesForSignalReference; private parseTriggerValueExpressions; private distinctTriggerValues; }