import { Transaction } from 'sequelize'; import { EventInstance, FlowNodeInstance, FlowNodeInstanceList, FlowNodeInstanceSortSettings, FlowNodeInstanceState, Model } from '@5minds/processcube_engine_sdk'; import { CreateFlowNodeInstanceRequest, InternalFlowNodeInstanceQuery, PersistDataObjectData, PersistOnStateChangeAdditionalData } from '../../Contracts/InternalDataModels/index'; import { DatabaseAdapter } from './BaseDatabaseAdapter'; type FlowNodeWithLane = Model.Base.FlowNode & { lane: string | null; }; export declare class FlowNodeInstanceDatabaseAdapter extends DatabaseAdapter { initialize(): Promise; findByInstanceId(flowNodeInstanceId: string): Promise; query(query: InternalFlowNodeInstanceQuery, offset?: number, limit?: number, sort?: FlowNodeInstanceSortSettings, flowNodeLanesToQueryOnlyAssignedUserTasks?: Array, flowNodeLanesOnlyRestrictedByAllowedLanes?: boolean, includeDeleted?: boolean): Promise; getFlowNodeExecutionCount(flowNodeId: string, processInstanceId: string): Promise; getFlowNodeInstancesForProcessInstanceId(processInstanceId: string): Promise>; getActiveMessageCatchEventsInProcessModel(processModelId: string, messageName: string): Promise>; cleanupOrphanedFlowNodeInstances(): Promise; finishRunningFlowNodeInstancesByProcessInstanceId(processInstanceId: string | Array, finalState?: FlowNodeInstanceState, error?: Error): Promise; persistOnEnter(payload: CreateFlowNodeInstanceRequest): Promise; batchPersistOnEnter(payloads: Array>): Promise; persistOnSuspend(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise; persistOnExit(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise; persistOnCancel(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise; persistOnError(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise; persistOnTerminate(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise; updateStartToken(flowNodeInstanceIds: Array, tokenPayload: any): Promise; deleteByProcessDefinitionId(processDefinitionId: string): Promise; /** * This is dangerous, because it can potentially break a process instance. * Deletion should usually be done in the context of deleting or resetting a Process Instance, or when undeploying a diagram. * Use for tests or cleanup procedures only. */ UNSAFE_deleteById(flowNodeInstanceId: string): Promise; saveMultiInstanceMetadata(multiInstanceMetadataId: string, startToken?: any, endToken?: any): Promise; loadFlowNodeInstancesForMultiInstance(multiInstanceMetadataId: string): Promise>; updateFlowNodesInProcessInstance(processInstanceId: string, flowNodes: Array): Promise; static reset(flowNodeInstanceId: string, transaction: Transaction, isUnstartedSubProcess?: boolean): Promise; private static execReset; static deleteByProcessDefinitionId(processDefinitionId: string, deleteTransaction: Transaction): Promise; static deleteByProcessInstanceIds(processInstanceIds: Array, deleteTransaction: Transaction): Promise; static deleteByIds(flowNodeInstanceIds: Array, deleteTransaction: Transaction): Promise; changeProcessTokenPayload(flowNodeInstanceId: string, processTokenType: 'startToken' | 'endToken', payload: any): Promise; private determineRequiredJoinsOnMetadataTables; private getFlowNodeTypesRequiringMetadata; private execPersistOnEnter; private execBatchPersistOnEnter; private persistOnStateChange; saveDataObjectInstances(data: PersistDataObjectData): Promise; private ensureStateTransitionIsValid; private saveFlowNodeInstanceTypeSpecificData; private saveBatchFlowNodeInstanceTypeSpecificData; private saveCallActivityData; private saveBatchCallActivityData; private saveSubprocessData; private saveBatchSubprocessData; private saveCatchEventData; private saveBatchCatchEventData; private saveThrowEventData; private saveBatchThrowEventData; private saveManualTaskData; private saveBatchManualTaskData; private saveExternalServiceTaskData; private saveBatchExternalServiceTaskData; private saveHttpServiceTaskData; private saveBatchHttpServiceTaskData; private saveUserTaskData; private saveBatchUserTaskData; private static deleteFlowNodeInstancesInBatches; } export {};