/**
 * @file Pipeline Builder
 * Fluent builder API for creating evaluation pipelines
 */
import type { AggregationMethod, PipelineConfig, ScoreResult, ScorerConfig } from "../../types/index.js";
import { EvaluationPipeline } from "./evaluationPipeline.js";
/**
 * Fluent builder for creating evaluation pipelines
 */
export declare class PipelineBuilder {
    private _name?;
    private _description?;
    private _scorers;
    private _aggregation;
    private _passThreshold;
    private _executionMode;
    private _stopOnFailure;
    private _timeout?;
    private _requiredScorers;
    constructor(name?: string);
    /**
     * Create a new pipeline builder
     */
    static create(name?: string): PipelineBuilder;
    /**
     * Set pipeline name
     */
    name(name: string): this;
    /**
     * Set pipeline description
     */
    description(desc: string): this;
    /**
     * Add a scorer by ID
     */
    addScorer(id: string, config?: ScorerConfig): this;
    /**
     * Add multiple scorers
     */
    addScorers(...ids: string[]): this;
    /**
     * Add a scorer and mark it as required
     */
    requireScorer(id: string, config?: ScorerConfig): this;
    /**
     * Set aggregation method
     */
    aggregateWith(method: AggregationMethod): this;
    /**
     * Set weights for weighted aggregation
     */
    withWeights(weights: Record<string, number>): this;
    /**
     * Set custom aggregation function
     */
    customAggregation(fn: (scores: ScoreResult[]) => number): this;
    /**
     * Set pass/fail threshold
     */
    passThreshold(threshold: number): this;
    /**
     * Run scorers in parallel (default)
     */
    parallel(): this;
    /**
     * Run scorers sequentially
     */
    sequential(): this;
    /**
     * Stop pipeline on first failure
     */
    stopOnFailure(): this;
    /**
     * Continue pipeline on failures (default)
     */
    continueOnFailure(): this;
    /**
     * Set pipeline timeout
     */
    timeout(ms: number): this;
    /**
     * Build the pipeline configuration
     */
    buildConfig(): PipelineConfig;
    /**
     * Build the pipeline (not initialized)
     */
    build(): EvaluationPipeline;
    /**
     * Build and initialize the pipeline
     */
    buildAndInitialize(): Promise<EvaluationPipeline>;
}
/**
 * Quick pipeline builder factory
 */
export declare const Pipelines: {
    /**
     * Create a new pipeline builder
     */
    create: (name?: string) => PipelineBuilder;
    /**
     * Create a safety-focused pipeline
     */
    safety: () => PipelineBuilder;
    /**
     * Create a RAG evaluation pipeline
     */
    rag: () => PipelineBuilder;
    /**
     * Create a quality-focused pipeline
     */
    quality: () => PipelineBuilder;
    /**
     * Create a comprehensive pipeline with all scorers
     */
    comprehensive: () => PipelineBuilder;
    /**
     * Create a minimal fast pipeline
     */
    minimal: () => PipelineBuilder;
    /**
     * Create a summarization evaluation pipeline
     */
    summarization: () => PipelineBuilder;
};
