import { FlowPipeline, FlowStep, FlowContextStep, FlowContextPipeline } from './types';
/**
 * Create a flow pipeline from a series of steps
 * @param steps Steps to include in the pipeline
 * @returns A flow pipeline
 */
export declare function flow<TInput, TOutput>(...steps: Array<FlowStep<any, any>>): FlowPipeline<TInput, TOutput>;
/**
 * Create a flow pipeline that maintains context between steps
 * @param steps Steps to include in the pipeline
 * @returns A flow pipeline with context
 */
export declare function flowWithContext<TInput, TOutput>(...steps: Array<FlowContextStep<any, any>>): FlowContextPipeline<TInput, TOutput>;
/**
 * Create a validation step
 * @param validator Function to validate the input
 * @returns A flow step that validates input
 */
export declare function validate<T>(validator: (input: T) => T | Promise<T>): FlowStep<T, T>;
/**
 * Create a filter step
 * @param predicate Function to determine if input should be filtered
 * @returns A flow step that filters input
 */
export declare function filter<T>(predicate: (input: T) => boolean | Promise<boolean>): FlowStep<T, T>;
/**
 * Create a parallel execution step
 * @param operations Map of operations to execute in parallel
 * @returns A flow step that executes operations in parallel
 */
export declare function parallel<TInput, TOutput extends Record<string, any>>(operations: Record<string, (input: TInput) => any>): FlowStep<TInput, TOutput>;
/**
 * Create a transformation step
 * @param transformer Function to transform the input
 * @returns A flow step that transforms input
 */
export declare function transform<TInput, TOutput>(transformer: (input: TInput) => TOutput | Promise<TOutput>): FlowStep<TInput, TOutput>;
/**
 * Load a flow from storage
 * @param name Name of the flow to load
 * @param version Optional version to load
 * @returns The loaded flow pipeline
 */
export declare function loadFlow<TInput, TOutput>(name: string, version?: string): Promise<FlowPipeline<TInput, TOutput>>;
//# sourceMappingURL=index.d.ts.map