import { FlowNodeInstanceList, FlowNodeInstanceSortSettings, GenericFlowNodeInstanceQuery, UserTaskResult } from '@5minds/processcube_engine_sdk'; import { InternalIdentity as Identity } from '../../Contracts/InternalDataModels/index'; import { CoreAccessService } from '../../Core/index'; import { ProxyConfiguration } from '../../Setups/EngineRouter'; import { FlowNodeInstanceDatabaseAdapter, UserTaskInstanceDatabaseAdapter } from '../../Tools/DatabaseAdaptersSequelize/index'; import { IamService, IdentityService } from '../../Tools/Iam/index'; export declare class FlowNodeInstanceService { private readonly coreAccessService; private readonly iamService; private readonly identityService; private readonly flowNodeInstanceAdapter; private readonly logger; private readonly userTaskAdapter; private readonly config; constructor(coreAccessService: CoreAccessService, iamService: IamService, identityService: IdentityService, flowNodeInstanceAdapter: FlowNodeInstanceDatabaseAdapter, userTaskAdapter: UserTaskInstanceDatabaseAdapter); query(identity: Identity, query: GenericFlowNodeInstanceQuery, offset?: number, limit?: number, sortSettings?: FlowNodeInstanceSortSettings): Promise; finishUntypedTask(identity: Identity, taskInstanceId: string): Promise; finishManualTask(identity: Identity, manualTaskInstanceId: string): Promise; finishUserTask(identity: Identity, userTaskInstanceId: string, userTaskResult?: UserTaskResult): Promise; triggerMessageEvent(identity: Identity, messageName: string, options?: { customCorrelationId?: string; processInstanceId?: string; payload?: any; messageChannel?: string; }): Promise; triggerSignalEvent(identity: Identity, signalName: string, options?: { customCorrelationId?: string; processInstanceId?: string; payload?: any; signalChannel?: string; }): Promise; reserveUserTaskInstance(identity: Identity, flowNodeInstanceId: string, actualOwnerId: string): Promise; cancelUserTaskInstanceReservation(identity: Identity, flowNodeInstanceId: string): Promise; private enhanceAndExecuteQuery; private loadSuspendedUserTaskInstance; private ensureUserCanAccessUserTask; private sendUserTaskReservedNotification; private sendUserTaskReservationCanceledNotification; private checkIfTaskIsAssignedToOtherUsers; private checkIfTaskIsReservedForAnotherUser; private ensureHasClaim; private validateUserTaskResults; } export interface FlowNodeInstanceServiceProxy { query(identity: Identity, query: GenericFlowNodeInstanceQuery, offset?: number, limit?: number, sortSettings?: FlowNodeInstanceSortSettings): Promise; finishUntypedTask(identity: Identity, taskInstanceId: string): Promise; finishManualTask(identity: Identity, manualTaskInstanceId: string): Promise; finishUserTask(identity: Identity, userTaskInstanceId: string, userTaskResult?: UserTaskResult): Promise; triggerMessageEvent(identity: Identity, messageName: string, options?: { customCorrelationId?: string; processInstanceId?: string; payload?: any; messageChannel?: string; }): Promise; triggerSignalEvent(identity: Identity, signalName: string, options?: { customCorrelationId?: string; processInstanceId?: string; payload?: any; signalChannel?: string; }): Promise; triggerTimerEvent(identity: Identity, flowNodeInstanceId: string): Promise; reserveUserTaskInstance(identity: Identity, flowNodeInstanceId: string, actualOwnerId: string): Promise; cancelUserTaskInstanceReservation(identity: Identity, flowNodeInstanceId: string): Promise; } export declare const FlowNodeInstanceServiceProxyConfiguration: ProxyConfiguration;