import { Transaction } from 'sequelize'; import { BaseError, ProcessInstanceSortSettings, ProcessInstanceState } from '@5minds/processcube_engine_sdk'; import { CreateProcessInstanceRequest, FinishProcessInstancePayload, InternalIdentity as Identity, ProcessInstanceInternal, ProcessInstanceInternalList, ProcessInstanceInternalQuery } from '../../Contracts/InternalDataModels/index'; import { DatabaseAdapter } from './BaseDatabaseAdapter'; export declare class ProcessInstanceDatabaseAdapter extends DatabaseAdapter { initialize(): Promise; create(request: CreateProcessInstanceRequest): Promise; setMetadataValue(processInstanceId: string, metaDataKey: string, metaDataValue: string, flowNodeInstanceId: string): Promise; getRunningProcessInstanceIds(): Promise>; getProcessInstances(processInstanceIds: Array): Promise>; getChildProcessInstances(parentProcessInstanceIds: Array): Promise>; getProcessInstancesByProcessDefinitionIdAndState(processDefinitionId: string, state: ProcessInstanceState): Promise>; getRetryableChildProcessInstances(parentProcessInstanceIds: Array): Promise>; query(query: ProcessInstanceInternalQuery, offset?: number, limit?: number, sort?: ProcessInstanceSortSettings, includeXml?: boolean, includeDeleted?: boolean): Promise; queryCount(query: ProcessInstanceInternalQuery): Promise; transferOwnership(processInstanceIds: Array, newOwner: Identity): Promise; finish(processInstanceId: string, endEventData?: FinishProcessInstancePayload): Promise; finishWithError(processInstanceId: string, error: Error, endEventData?: FinishProcessInstancePayload): Promise; terminate(processInstanceId: string, terminationError: BaseError, endEventData?: FinishProcessInstancePayload): Promise; changeProcessDefinition(processInstanceId: string, newProcessModelHash: string): Promise; reset(processInstanceId: string, flowNodeInstanceIdsToReset: Array, flowNodeInstanceIdsToDelete?: Array, processInstanceIdsToDelete?: Array): Promise; flagAsDeletedByIds(processInstanceIds: Array): Promise; deleteByIds(processInstanceIds: Array): Promise; static deleteByIds(processInstanceIds: Array, transaction: Transaction): Promise; deleteByProcessDefinitionId(processDefinitionId: string): Promise; static deleteByProcessDefinitionId(processDefinitionId: string, deleteTransaction: Transaction): Promise; private execCreate; private getUnorderedProcessInstanceList; private loadMetadataForProcessInstances; private getProcessInstanceIdsToLoad; private getIncludesForPlainQueries; private buildProcessInstanceWhereClause; private buildAuthorizationFilters; private buildEventTypeFilter; private storeCorrelation; private static deleteEmptyCorrelations; private deleteMetadataValueByFlowNodeInstanceIds; private validateCreateRequest; private findProcessInstanceAndVerifyRunningState; private calculateTotalRuntime; private calculateRegularRuntime; private calculateRuntimeWithRetry; private buildQueryOrderSettings; }