import { Message } from '@node-ts/bus-messages'; import { ClassConstructor } from '@node-ts/bus-core'; import { WorkflowData } from '../workflow-data'; import { Workflow, WorkflowConstructor } from '../workflow'; import { WorkflowWithHandler } from './handler-workflow'; export declare const WORKFLOW_STARTED_BY_METADATA_KEY: unique symbol; export declare class WorkflowStartedByMetadata { propertyKey: string; messageConstructor: ClassConstructor; static addStep(metadata: WorkflowStartedByMetadata, target: Workflow): void; static getSteps(target: WorkflowConstructor): WorkflowStartedByMetadata[]; } /** * A handler that starts a new workflow whenever a message of the handled type is received. A workflow can be started * by one or more message types. * @param messageConstructor The type of message that starts a new workflow */ export declare function StartedBy = WorkflowWithHandler>(messageConstructor: ClassConstructor): (target: TTarget, propertyKey: TPropertyKey) => void;