import { WorkflowData, WorkflowDataConstructor } from '../workflow-data'; import { WorkflowConstructor } from '../workflow'; import { WorkflowHandlerFn } from './workflow-handler-fn'; import { Message } from '@node-ts/bus-messages'; import { HandlerRegistry, ClassConstructor } from '@node-ts/bus-core'; import { MessageWorkflowMapping } from '../message-workflow-mapping'; import { Persistence } from '../persistence'; import { StartedByProxy } from './started-by-proxy'; import { HandlesProxy } from './handles-proxy'; import { Logger } from '@node-ts/logger-core'; /** * The central workflow registry that holds all workflows managed by the application. This includes * - the list of workflows * - what messages start the workflow * - what messages are handled by each workflow */ export declare class WorkflowRegistry { private readonly handlerRegistry; private readonly persistence; private readonly startedByFactory; private readonly handlesFactory; private readonly logger; private workflowRegistry; private isInitialized; private isInitializing; constructor(handlerRegistry: HandlerRegistry, persistence: Persistence, startedByFactory: (workflowDataConstructor: WorkflowDataConstructor, handler: WorkflowHandlerFn) => StartedByProxy, handlesFactory: (handler: WorkflowHandlerFn, workflowDataConstructor: WorkflowDataConstructor, messageMapping: MessageWorkflowMapping) => HandlesProxy, logger: Logger); register(workflowConstructor: WorkflowConstructor, workflowDataConstructor: ClassConstructor): void; /** * Initialize all services that are used to support workflows. This registers all messages subscribed to * in workflows as handlers with the bus, as well as initializing the persistence service so that workflow * states can be stored. * * This should be called once as the application is starting. */ initializeWorkflows(): Promise; dispose(): Promise; private registerStartedBy; private registerHandles; }