/**
 * Experiment Analytics Aggregation Helpers
 *
 * Pure functions for computing statistics from raw score data.
 * Used by compareExperiments to build ScorerStats and detect regressions.
 */
import type { ScoreRowData } from '../../../evals/types.js';
import type { ScorerStats } from './types.js';
/**
 * Compute the arithmetic mean of an array of numbers.
 *
 * @param values - Array of numbers to average
 * @returns Mean value, or 0 if array is empty
 */
export declare function computeMean(values: number[]): number;
/**
 * Compute aggregate statistics for a set of scores.
 *
 * Metrics:
 * - errorRate: proportion of items with null scores (errors)
 * - passRate: proportion of scored items meeting threshold
 * - avgScore: mean of non-null scores
 *
 * @param scores - Score records from storage
 * @param passThreshold - Absolute threshold for pass (score >= threshold)
 * @returns ScorerStats with all computed metrics
 */
export declare function computeScorerStats(scores: ScoreRowData[], passThreshold?: number): ScorerStats;
/**
 * Determine if a score delta represents a regression.
 *
 * @param delta - Score difference (experiment B - experiment A)
 * @param threshold - Absolute threshold for regression detection
 * @param direction - Score direction ('higher-is-better' or 'lower-is-better')
 * @returns True if delta represents a regression
 *
 * @example
 * // Higher is better (default): negative delta is bad
 * isRegression(-0.1, 0.05, 'higher-is-better') // true (dropped more than 0.05)
 * isRegression(-0.01, 0.05, 'higher-is-better') // false (within tolerance)
 *
 * // Lower is better: positive delta is bad
 * isRegression(0.1, 0.05, 'lower-is-better') // true (increased more than 0.05)
 */
export declare function isRegression(delta: number, threshold: number, direction?: 'higher-is-better' | 'lower-is-better'): boolean;
//# sourceMappingURL=aggregate.d.ts.map