import { BaseError, FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk'; import { FlowNodeInstanceDatabaseAdapter } from '../../../../Tools/DatabaseAdaptersSequelize/FlowNodeInstanceAdapter'; import { ProcessInstance } from '../../../ProcessInstance'; import { ActivityHandler } from '../ActivityHandler'; import { ActivityInstanceHandler } from '../ActivityInstanceHandler'; export declare abstract class ActivityExecutionStrategy { protected readonly flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter; protected readonly activityHandler: ActivityHandler; protected readonly processInstance: ProcessInstance; protected readonly activityInstanceHandlers: Array>; protected _timeoutBetweenLoopIterations?: number; protected _maxLoopIterations?: number; constructor(flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, activityHander: ActivityHandler, processInstance: ProcessInstance); set timeoutBetweenLoopIterations(timeout: number); set maxLoopIterations(timeout: number); get flowNodeInstanceId(): string; private get activeFlowNodeInstances(); abstract execute(startToken: Record | Array, executionCanceledCallback?: Function): Promise | Array>; abstract resume(flowNodeInstancesToResume: Array, startToken: Record | Array, resumptionCanceledCallback?: Function): Promise | Array>; endWithError(error: BaseError, force?: boolean): Promise; endWithPreError(error: BaseError, force?: boolean): Promise; endWithPostError(error: BaseError, force?: boolean): Promise; terminate(): Promise; cancel(): Promise; protected createNewActivityInstanceHandler(previousFlowNodeInstanceId?: string, instanceContext?: { [key: string]: any; }): ActivityInstanceHandler; protected runOnAllFlowNodeInstances(executor: (fni: ActivityInstanceHandler) => Promise): Promise; protected runOnActiveFlowNodeInstances(executor: (fni: ActivityInstanceHandler) => Promise): Promise; protected runOnLastFlowNodeInstance(executor: (fni: ActivityInstanceHandler) => Promise): Promise; }