/**
 * @file Batch Strategy
 * Batch processing for evaluation pipelines
 */
import type { ScorerInput, PipelineExecutionOptions, BatchEvaluationConfig, BatchEvaluationResult, BatchItemResult } from "../../../types/index.js";
import type { EvaluationPipeline } from "../evaluationPipeline.js";
/**
 * Batch evaluation strategy
 */
export declare class BatchStrategy {
    private _pipeline;
    private _config;
    constructor(pipeline: EvaluationPipeline, config?: BatchEvaluationConfig);
    /**
     * Evaluate a batch of inputs
     */
    evaluate(inputs: ScorerInput[], options?: PipelineExecutionOptions): Promise<BatchEvaluationResult>;
    /**
     * Evaluate a single item
     */
    private _evaluateItem;
    /**
     * Estimate remaining time based on average duration
     */
    private _estimateRemainingTime;
    /**
     * Delay helper
     */
    private _delay;
    /**
     * Update configuration
     */
    configure(config: Partial<BatchEvaluationConfig>): void;
}
/**
 * Create a batch strategy for a pipeline
 */
export declare function createBatchStrategy(pipeline: EvaluationPipeline, config?: BatchEvaluationConfig): BatchStrategy;
/**
 * Evaluate a batch of inputs using a pipeline
 */
export declare function evaluateBatch(pipeline: EvaluationPipeline, inputs: ScorerInput[], config?: BatchEvaluationConfig): Promise<BatchEvaluationResult>;
/**
 * Stream batch evaluation results
 */
export declare function streamBatchEvaluation(pipeline: EvaluationPipeline, inputs: ScorerInput[], config?: Omit<BatchEvaluationConfig, "onResult" | "onProgress">): AsyncGenerator<BatchItemResult, BatchEvaluationResult["summary"], void>;
