import { EvalEntry } from './EvaluationGenerator';
/**
 * Interface for evaluation result
 */
export interface ResponseEvalResult {
    query: string;
    response: string;
    reference?: string;
    score: number;
    reason?: string;
    [key: string]: any;
}
/**
 * Interface for evaluation criteria
 */
export interface EvaluationCriteria {
    [key: string]: number | undefined;
}
/**
 * Runs response evaluation for agents
 */
export declare class ResponseEvaluator {
    /**
     * Evaluates a list of agent responses against references.
     * @param evalData Array of evaluation entries
     * @returns Array of evaluation results
     */
    static evaluateResponses(evalData: EvalEntry[]): ResponseEvalResult[];
    /**
     * Calculate similarity between two text strings
     * @param text1 First text
     * @param text2 Second text
     * @returns Similarity score between 0 and 1
     */
    private static calculateSimilarity;
    /**
     * Returns the value of requested evaluation metrics.
     * @param rawEvalDataset The dataset that will be evaluated
     * @param evaluationCriteria The evaluation criteria to use
     * @param printDetailedResults Whether to print detailed results
     * @returns Summary metrics
     */
    static evaluate(rawEvalDataset: EvalEntry[][], evaluationCriteria: EvaluationCriteria, printDetailedResults?: boolean): Promise<Record<string, number>>;
    /**
     * Determines which metrics to use based on dataset and criteria
     * @param rawEvalDataset The evaluation dataset
     * @param criteria The criteria to evaluate
     * @returns List of metrics to use
     */
    private static _getMetrics;
    /**
     * Performs evaluation on the dataset using specified metrics
     * @param dataset The evaluation dataset
     * @param metrics The metrics to evaluate
     * @returns Evaluation results
     */
    private static _performEval;
    /**
     * Prints evaluation results to the console
     * @param evalResult Evaluation results
     */
    private static _printResults;
}
