import { Observable } from 'rxjs'; import { PersistentWorkflowBuilder } from './persistent-workflow-builder'; import { PersistentWorkflowLog } from './persistent-workflow-context'; import { PersistentWorkflowStore } from './persistent-workflow-store'; /** * The result data structure of start() and stateFromStore(). */ export interface PersistentWorkflowResult { /** * The instance ID. */ instanceId: number; /** * The result object which is the last transitData defined at finalize() function. */ result: TResult; /** * The record of logs. */ logs: PersistentWorkflowLog[]; /** * The error object produced from any of calls. */ error?: any; /** * Clear the snapshot of the context. * Must call this function to stop tracking the workflow. */ clear(): Observable; } /** * The runner of workflow. */ export declare class PersistentWorkflowRunner { private persistentStore; private builder; /** * Workflow always starts from startingId which is "1". */ static readonly startingId = 1; /** * The collection of workflows. It allows multiple instances of workflows to track. */ private workflowCollection; /** * Initializes a new instance of the PersistentWorkflowRunner class. * * @param persistentStore The persistent store instance. * @param builder The builder of the workflow. */ constructor(persistentStore: PersistentWorkflowStore, builder: PersistentWorkflowBuilder); /** * Start a new single workflow. * * @param transitData the transit data for initialization for the first workflow. */ start(transitData: any): Observable>; /** * Start workflows from existing snapshots data from the store. */ startFromStore(): Observable>; private process; private processResult; private processNext; private processStep; private checkpoint; private save; }