import { ProcessDefinition, ProcessInstanceList, ProcessInstanceQuery, ProcessInstanceSortSettings, ProcessModel, Identity as PublicIdentity } 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, ProcessInstanceDatabaseAdapter } from '../../Tools/DatabaseAdaptersSequelize'; import { IamService, IdentityService } from '../../Tools/Iam/index'; import { ProcessDefinitionMediator } from '../../Tools/ProcessDefinitionMediator'; export declare class ProcessInstanceService { private readonly coreAccess; private readonly flowNodeInstanceDatabaseAdapter; private readonly iamService; private readonly identityService; private readonly logger; private readonly processDefinitionMediator; private readonly processInstanceDatabaseAdapter; private readonly config; constructor(coreAccessService: CoreAccessService, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, iamService: IamService, identityService: IdentityService, processDefinitionMediator: ProcessDefinitionMediator, processInstanceDatabaseAdapter: ProcessInstanceDatabaseAdapter); query(identity: Identity, query: ProcessInstanceQuery, offset?: number, limit?: number, sortSettings?: ProcessInstanceSortSettings, includeXml?: boolean): Promise; getProcessDefinition(identity: Identity, processInstanceId: string): Promise; getProcessModel(identity: Identity, processInstanceId: string): Promise; transferOwnership(identity: Identity, processInstanceId: string, newOwner: PublicIdentity): Promise; terminateProcessInstance(identity: Identity, processInstanceId: string): Promise; private ensureUserIsAllowedToTerminateProcessInstance; retryProcessInstance(identity: Identity, processInstanceId: string, flowNodeInstanceId?: string, newStartToken?: any, updateProcessModel?: boolean): Promise; deleteProcessInstances(identity: Identity, processInstanceIds: Array, deleteAllRelatedData?: boolean): Promise; private getProcessInstanceById; private getRootProcessOfProcessInstanceTree; private getAllChildProcessInstances; private checkIfProcessInstanceSetCanBeDeleted; private processInstanceBelongsToDifferentUser; private sanitizeProcessInstance; private ensureHasClaim; } export interface ProcessInstanceServiceProxy { query(identity: Identity, query: ProcessInstanceQuery, offset?: number, limit?: number, sortSettings?: ProcessInstanceSortSettings, includeXml?: boolean): Promise; getProcessDefinition(identity: Identity, processInstanceId: string): Promise; getProcessModel(identity: Identity, processInstanceId: string): Promise; terminateProcessInstance(identity: Identity, processInstanceId: string): Promise; transferOwnership(identity: Identity, processInstanceId: string, newOwner: PublicIdentity): Promise; retryProcessInstance(identity: Identity, processInstanceId: string, flowNodeInstanceId?: string, newStartToken?: any, updateProcessModel?: boolean): Promise; deleteProcessInstances(identity: Identity, processInstanceIds: Array, deleteAllRelatedData?: boolean): Promise; } export declare const ProcessInstanceServiceProxyConfiguration: ProxyConfiguration;