import type { ServiceContext } from "../ServiceContext.js";
import { PromptMixin } from "../prompts/Mixin.js";
import type { RelevancyEvalPrompt, RelevancyRefinePrompt } from "./prompts.js";
import type { BaseEvaluator, EvaluationResult, EvaluatorParams, EvaluatorResponseParams } from "./types.js";
type RelevancyParams = {
    serviceContext?: ServiceContext;
    raiseError?: boolean;
    evalTemplate?: RelevancyEvalPrompt;
    refineTemplate?: RelevancyRefinePrompt;
};
export declare class RelevancyEvaluator extends PromptMixin implements BaseEvaluator {
    private serviceContext?;
    private raiseError;
    private evalTemplate;
    private refineTemplate;
    constructor(params?: RelevancyParams);
    _getPrompts(): {
        evalTemplate: ({ query, context, }: {
            query: string;
            context: string;
        }) => string;
        refineTemplate: ({ query, existingAnswer, contextMsg, }: {
            query: string;
            existingAnswer: string;
            contextMsg: string;
        }) => string;
    };
    _updatePrompts(prompts: {
        evalTemplate: RelevancyEvalPrompt;
        refineTemplate: RelevancyRefinePrompt;
    }): void;
    evaluate({ query, response, contexts, sleepTimeInSeconds, }: EvaluatorParams): Promise<EvaluationResult>;
    /**
     * @param query Query to evaluate
     * @param response  Response to evaluate
     */
    evaluateResponse({ query, response, }: EvaluatorResponseParams): Promise<EvaluationResult>;
}
export {};
