/**
 * @file BatchEvaluator - Supports batch evaluation of multiple responses.
 * Enables parallel evaluation with configurable concurrency and error handling.
 */
import type { AutoEvaluationConfig, BatchEvaluationConfig, BatchEvaluationItem, BatchEvaluationResult } from "../types/index.js";
/**
 * BatchEvaluator - Performs evaluation on multiple items in parallel.
 * Supports configurable concurrency, retry logic, and progress tracking.
 *
 * @example
 * ```typescript
 * const batchEvaluator = new BatchEvaluator({
 *   concurrency: 3,
 *   continueOnError: true,
 *   onProgress: (progress) => console.log(`${progress.percentComplete}% complete`)
 * });
 *
 * const items = [
 *   { id: '1', options: opts1, result: result1 },
 *   { id: '2', options: opts2, result: result2 },
 * ];
 *
 * const batchResult = await batchEvaluator.evaluateBatch(items);
 * console.log(`Passing rate: ${batchResult.summary.passingRate}%`);
 * ```
 */
export declare class BatchEvaluator {
    private config;
    constructor(config?: BatchEvaluationConfig);
    /**
     * Create a fresh Evaluator instance for each evaluation to avoid leaking state.
     */
    private _createEvaluator;
    /**
     * Evaluates a batch of items in parallel with controlled concurrency.
     *
     * @param items - Array of items to evaluate
     * @param autoEvalConfig - Auto-evaluation configuration for thresholds
     * @returns Batch evaluation results with summary statistics
     */
    evaluateBatch(items: BatchEvaluationItem[], autoEvalConfig?: AutoEvaluationConfig): Promise<BatchEvaluationResult>;
    /**
     * Evaluates items sequentially (one at a time).
     * Useful for debugging or when order matters.
     *
     * @param items - Array of items to evaluate
     * @param autoEvalConfig - Auto-evaluation configuration
     * @returns Batch evaluation results
     */
    evaluateSequential(items: BatchEvaluationItem[], autoEvalConfig?: AutoEvaluationConfig): Promise<BatchEvaluationResult>;
    /**
     * Gets the current configuration.
     */
    getConfig(): BatchEvaluationConfig;
    /**
     * Updates the configuration.
     *
     * @param config - New configuration values
     */
    updateConfig(config: Partial<BatchEvaluationConfig>): void;
    /**
     * Helper to delay execution.
     */
    private delay;
}
