import type { Artifact, Report, Sample, Task, VariantResult, GitInfo, EvaluationJob, EvaluationRequest, EvaluationRun } from '../types/index.js';
export declare const DEFAULT_OUTPUT_DIR: string;
export declare function hashString(str: string): string;
/**
 * Stable content hash of a sample. Hashes the prompt + assertions + dimensions/rubric
 * (the parts that determine what's being measured). Two samples with the same hash
 * across runs measure the same thing; mismatched hashes mean the sample changed.
 */
export declare function hashSample(sample: Sample): string;
export declare function getCliVersion(): string;
export declare function getGitInfo(): GitInfo | null;
interface AggregateReportOptions {
    runId: string;
    variants: string[];
    model: string;
    judgeModel: string;
    noJudge: boolean;
    executorName: string;
    samples: Sample[];
    tasks: Task[];
    results: Record<string, Record<string, VariantResult>>;
    totalCostUSD: number;
    artifacts: Artifact[];
    request?: EvaluationRequest;
    run?: EvaluationRun;
    job?: EvaluationJob;
    layeredStats?: boolean;
}
export declare function aggregateReport({ runId, variants, model, judgeModel, noJudge, executorName, samples, tasks, results, totalCostUSD, artifacts, request, run, job, layeredStats, }: AggregateReportOptions): Report;
export declare function applyBlindMode(report: Report, variants: string[], blindSeed: string): void;
export interface PersistableReport {
    id: string;
}
export declare function persistReport(report: PersistableReport, outputDir: string | null): string | null;
export declare function generateRunId(variants: string[]): string;
export {};
//# sourceMappingURL=evaluation-reporting.d.ts.map