import { Container } from 'inversify'; import { BaseError, FlowNodeInstance, FlowNodeInstanceResult, Model, SubProcessModelFacade } from '@5minds/processcube_engine_sdk'; import { EventMessageInternal, InternalIdentity as Identity, ProcessInstanceInternal } from '../Contracts/index'; import { CorrelationDatabaseAdapter, FlowNodeInstanceDatabaseAdapter, ProcessInstanceDatabaseAdapter } from '../Tools/DatabaseAdaptersSequelize'; import { EventMiddlewareHandler } from '../Tools/EventMiddlewareHandler'; import { IamService, IdentityService } from '../Tools/Iam/index'; import { ProcessDefinitionMediator } from '../Tools/ProcessDefinitionMediator'; import { DataObjectFacade } from './Facades/index'; import { FlowNodeHandlerFactory } from './FlowNodeHandler/FlowNodeHandlerFactory'; import { ProcessInstance } from './ProcessInstance'; import { ProcessTokenService } from './ProcessTokenService'; export type SubProcessInstanceConfig = { correlationId: string; processDefinitionId: string; processModelId: string; processModelName: string; processInstanceId: string; parentProcessInstance: ProcessInstance; startEvent: Model.Events.StartEvent; processModelFacade: SubProcessModelFacade; initialPayload: object; owner: Identity; }; export declare class SubProcessInstance extends ProcessInstance { private startEvent; processModelFacade: SubProcessModelFacade; constructor(container: Container, correlationDatabaseAdapter: CorrelationDatabaseAdapter, dataObjectFacade: DataObjectFacade, eventMiddlewareHandler: EventMiddlewareHandler, flowNodeHandlerFactory: FlowNodeHandlerFactory, flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, identityService: IdentityService, iamService: IamService, processDefinitionMediator: ProcessDefinitionMediator, processInstanceDatabaseAdapter: ProcessInstanceDatabaseAdapter, processTokenService: ProcessTokenService, config: SubProcessInstanceConfig); getProcessModelFacade(): SubProcessModelFacade; getCorrelationMetaData(): { [key: string]: string; }; getProcessInstanceMetaData(): { [key: string]: string; }; getStartEvent(): Model.Events.StartEvent; isEmbeddedSubprocess(): boolean; execute(): Promise; resume(identity: Identity, processInstance: ProcessInstanceInternal, flowNodeInstances: Array, subProcessWasCanceled?: boolean): Promise; protected executeProcess(): Promise; protected resumeProcess(flowNodeInstances: Array, flowNodeInstancesToResume: Array): Promise; setProcessInstanceMetadataValue(key: string, rawValue: string, flowNode: Model.Base.FlowNode, flowNodeInstanceId?: string, currentToken?: object): Promise; setCorrelationMetadataValue(key: string, rawValue: string, flowNode: Model.Base.FlowNode, flowNodeInstanceId: string, currentToken?: object): Promise; createSubProcessInstance(): SubProcessInstance; protected configure(): Promise; protected terminateSubprocesses(): Promise; protected save(): Promise; protected finish(): Promise; protected finishWithError(error: BaseError): Promise; }