import { StepBody, InlineStepBody } from "../abstractions"; import { WorkflowStep, StepExecutionContext, ExecutionResult } from "../models"; import { WaitFor, Foreach, While, If, Delay, Schedule, Sequence } from "../primitives"; import { WorkflowBuilder } from "./workflow-builder"; import { ReturnStepBuilder } from "./return-step-builder"; import { OutcomeBuilder } from "./outcome-builder"; import { ParallelStepBuilder } from "./parallel-step-builder"; export declare class StepBuilder { private workflowBuilder; step: WorkflowStep; constructor(workflowBuilder: WorkflowBuilder, step: WorkflowStep); name(name: string): StepBuilder; then(body: { new (): TNewStepBody; }, setup?: (step: StepBuilder) => void): StepBuilder; thenStep(newStep: StepBuilder): StepBuilder; thenRun(step: (context: StepExecutionContext) => Promise): StepBuilder; when(outcomeValue: (data: TData) => any): OutcomeBuilder; input(expression: (step: TStepBody, data: TData) => void): StepBuilder; output(expression: (step: TStepBody, data: TData) => void): StepBuilder; waitFor(eventName: string, eventKey: (data: TData) => any, effectiveDate?: (data: TData) => Date): StepBuilder; end(stepName: string): StepBuilder; onError(behavior: number, retryInterval?: number): StepBuilder; private iterateParents(id, name); foreach(expression: (data: TData) => any[]): StepBuilder; while(expression: (data: TData) => boolean): StepBuilder; if(expression: (data: TData) => boolean): StepBuilder; parallel(): ParallelStepBuilder; saga(builder: (then: WorkflowBuilder) => void): StepBuilder; schedule(interval: (data: TData) => number): ReturnStepBuilder; delay(milliseconds: (data: TData) => number): StepBuilder; compensateWith(body: { new (): TNewStepBody; }, setup?: (step: StepBuilder) => void): StepBuilder; compensateWithSequence(sequence: (then: WorkflowBuilder) => void): StepBuilder; do(builder: (then: WorkflowBuilder) => void): StepBuilder; }