import type { CreateClassificationEvaluatorArgs } from "../types/evals.js";
import type { ClassificationEvaluator } from "./ClassificationEvaluator.js";
export interface FaithfulnessEvaluatorArgs<RecordType extends Record<string, unknown> = FaithfulnessEvaluationRecord> extends Omit<CreateClassificationEvaluatorArgs<RecordType>, "promptTemplate" | "choices" | "optimizationDirection" | "name"> {
    optimizationDirection?: CreateClassificationEvaluatorArgs<RecordType>["optimizationDirection"];
    name?: CreateClassificationEvaluatorArgs<RecordType>["name"];
    choices?: CreateClassificationEvaluatorArgs<RecordType>["choices"];
    promptTemplate?: CreateClassificationEvaluatorArgs<RecordType>["promptTemplate"];
}
/**
 * A record to be evaluated by the faithfulness evaluator.
 */
export type FaithfulnessEvaluationRecord = {
    input: string;
    output: string;
    context?: string;
};
/**
 * Creates a function that evaluates whether an answer is faithful or unfaithful based on a query and reference text.
 *
 * @param args - The arguments for creating the faithfulness evaluator.
 * @returns A function that evaluates whether an answer is faithful or unfaithful based on a query and reference text.
 */
export declare function createFaithfulnessEvaluator<RecordType extends Record<string, unknown> = FaithfulnessEvaluationRecord>(args: FaithfulnessEvaluatorArgs<RecordType>): ClassificationEvaluator<RecordType>;
//# sourceMappingURL=createFaithfulnessEvaluator.d.ts.map