import { PersistentWorkItem } from './persistent-work-item'; import { PersistentWorkflow } from './persistent-workflow'; import { PersistentWorkflowContext } from './persistent-workflow-context'; declare type PersistentDataType = any; declare type TransitDataType = any; declare type PersistentContextType = PersistentWorkflowContext; declare type PersistentWorkItemType = PersistentWorkItem; /** * Abstract class of workflow builder. * An instance of this class will be used to build workflow. */ export declare abstract class PersistentWorkflowBuilder { protected moduleName: string; protected name: string; protected version: number; /** * The collection of work items. */ protected collection: PersistentWorkItem[]; /** * Initializes a new instance of the PersistentWorkflowBuilder abstract class. * * @param moduleName the module name. * @param name the name within the namespace. * @param version the version number. */ constructor(moduleName: string, name: string, version: number); /** * Initializes the collection to before adding any work items. */ protected init(): void; /** * Gets the workflow. */ protected get workflow(): PersistentWorkflow; /** * Add the work item single sequence pattern. * * @param workItem the work item. */ protected addSequence(workItem: PersistentWorkItemType): void; /** * Add the work item with custom sequence. * * @param workItem the work item. */ protected add(workItem: PersistentWorkItemType): void; /** * Build the collection of work item for workflow. * * @returns the collection of work items. */ abstract build(): PersistentWorkflow; } export {};