import type { z } from "zod"; import type { L0Options, L0Result } from "./l0"; import type { StructuredOptions, StructuredResult } from "./structured"; export interface PipelineStep { name: string; fn: (input: TInput, context: StepContext) => L0Options | Promise; transform?: (result: L0Result, context: StepContext) => TOutput | Promise; condition?: (input: TInput, context: StepContext) => boolean | Promise; onError?: (error: Error, context: StepContext) => void | Promise; onComplete?: (result: StepResult, context: StepContext) => void | Promise; metadata?: Record; } export interface StructuredPipelineStep { name: string; fn: (input: TInput, context: StepContext) => StructuredOptions | Promise>; transform?: (result: StructuredResult>, context: StepContext) => any | Promise; condition?: (input: TInput, context: StepContext) => boolean | Promise; onError?: (error: Error, context: StepContext) => void | Promise; onComplete?: (result: StructuredStepResult>, context: StepContext) => void | Promise; metadata?: Record; } export interface StepContext { stepIndex: number; totalSteps: number; previousResults: StepResult[]; metadata: Record; signal?: AbortSignal; } export interface StepResult { stepName: string; stepIndex: number; input: any; output: TOutput; l0Result: L0Result; status: "success" | "error" | "skipped"; error?: Error; duration: number; startTime: number; endTime: number; } export interface StructuredStepResult { stepName: string; stepIndex: number; input: any; output: TOutput; structuredResult: StructuredResult; status: "success" | "error" | "skipped"; error?: Error; duration: number; startTime: number; endTime: number; } export interface PipelineOptions { name?: string; stopOnError?: boolean; timeout?: number; signal?: AbortSignal; monitoring?: { enabled?: boolean; metadata?: Record; }; onStart?: (input: any) => void | Promise; onComplete?: (result: PipelineResult) => void | Promise; onError?: (error: Error, stepIndex: number) => void | Promise; onProgress?: (stepIndex: number, totalSteps: number) => void | Promise; metadata?: Record; } export interface PipelineResult { name?: string; output: TOutput; steps: StepResult[]; status: "success" | "error" | "partial"; error?: Error; duration: number; startTime: number; endTime: number; metadata?: Record; } export interface Pipeline { name?: string; steps: PipelineStep[]; options: PipelineOptions; run(input: TInput): Promise>; addStep(step: PipelineStep): Pipeline; removeStep(name: string): Pipeline; getStep(name: string): PipelineStep | undefined; clone(): Pipeline; } export interface PipelineBranch { condition: (input: TInput, context: StepContext) => boolean | Promise; steps: PipelineStep[]; name?: string; } export interface StepBuilderOptions { l0Options?: Partial; transform?: (result: L0Result) => any | Promise; condition?: (input: any, context: StepContext) => boolean | Promise; onError?: (error: Error, context: StepContext) => void | Promise; metadata?: Record; } export interface PipelinePreset { name: string; stopOnError: boolean; timeout?: number; monitoring?: { enabled: boolean; }; } export declare const fastPipeline: Partial; export declare const reliablePipeline: Partial; export declare const productionPipeline: Partial; //# sourceMappingURL=pipeline.d.ts.map