import type { ApiProvider, Assertion, AssertionParams, AssertionValue, GradingConfig, GradingResult, ProviderType } from './types';
export declare function getGradingProvider(type: ProviderType, provider: GradingConfig['provider'], defaultProvider: ApiProvider | null): Promise<ApiProvider | null>;
export declare function getAndCheckProvider(type: ProviderType, provider: GradingConfig['provider'], defaultProvider: ApiProvider | null, checkName: string): Promise<ApiProvider>;
export declare function matchesSimilarity(expected: string, output: string, threshold: number, inverse?: boolean, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
/**
 *
 * @param expected Expected classification. If undefined, matches any classification.
 * @param output Text to classify.
 * @param threshold Value between 0 and 1. If the expected classification is undefined, the threshold is the minimum score for any classification. If the expected classification is defined, the threshold is the minimum score for that classification.
 * @param grading
 * @returns Pass if the output matches the classification with a score greater than or equal to the threshold.
 */
export declare function matchesClassification(expected: string | undefined, output: string, threshold: number, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function renderLlmRubricPrompt(rubricPrompt: string, context: Record<string, string | object>): Promise<string>;
export declare function matchesLlmRubric(rubric: string | object, llmOutput: string, grading?: GradingConfig, vars?: Record<string, string | object>, assertion?: Assertion | null, options?: {
    throwOnError?: boolean;
}, workspaceId?: string): Promise<GradingResult>;
export declare function matchesPiScore(renderedValue: string, llmInput: string, llmOutput: string, assertion?: Assertion | null): Promise<GradingResult>;
export declare function matchesFactuality(input: string, expected: string, output: string, grading?: GradingConfig, vars?: Record<string, string | object>, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesClosedQa(input: string, expected: string, output: string, grading?: GradingConfig, vars?: Record<string, string | object>, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesGEval(criteria: string, input: string, output: string, threshold: number, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesMultimodalGEval(criteria: AssertionValue | undefined, input: string, output: string, threshold: number, evalType: string, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesAnswerRelevance(input: string, output: string, threshold: number, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesContextRecall(context: string, groundTruth: string, threshold: number, grading?: GradingConfig, vars?: Record<string, string | object>, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesContextRelevance(question: string, context: string, threshold: number, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesContextFaithfulness(query: string, output: string, context: string, threshold: number, grading?: GradingConfig, vars?: Record<string, string | object>, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesPlanCorrectness(task: string, definitions: unknown, plan: string, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesPlanAdherence(task: string, plan: string, toolCalls: unknown, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesGoalFulfillment(task: string, plan: string | undefined, trace: unknown, agentOutput: string, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesToolSelectionQuality(task: string, definitions: unknown, trace: unknown, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesExecutionEfficiency(task: string, trace: unknown, agentOutput: string, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesReasoningCoherence(task: string, plan: string | undefined, trace: unknown, agentOutput: string, grading?: GradingConfig): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesAgentCustomEval(task: string, plan: string, definitions: unknown, trace: unknown, agentOutput: string, criteria: string[], grading?: GradingConfig, threshold?: number): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesSelectBest(criteria: string, outputs: string[], grading?: GradingConfig, vars?: Record<string, string | object>, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>[]>;
interface ModerationMatchOptions {
    userPrompt: string;
    assistantResponse: string;
    categories?: string[];
}
export declare function matchesModeration({ userPrompt, assistantResponse, categories }: ModerationMatchOptions, grading?: GradingConfig, workspaceId?: string): Promise<{
    pass: boolean;
    score: number;
    reason: string;
}>;
export declare function matchesSentiment(criteria: string[], input: string, output: string | object | undefined, grading?: GradingConfig, workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesCodeCorrectness(prompt: string, output: string, grading?: GradingConfig, workspaceId?: string): Promise<GradingResult>;
export declare const CODE_LANGUAGE_PROMPT = "\nCode Language Detection:\n\nTask:\nIdentify whether the provided text contains code and, if so, which programming language(s) \nit is written in.\n\nInput:\n[text]: {{ output }}\n\nInstructions:\nReturn a JSON object with:\n- \"result\": \"yes\" or \"no\" \u2014 depending on whether code is present\n- \"language\": an array of detected languages (like [\"python\", \"javascript\"])\n\nExample Response:\n{\n  \"result\": \"yes\",\n  \"language\": [\"python\"]\n}\n";
type CodeLanguageResult = Omit<GradingResult, 'assertion'> & {
    rawOutput?: string;
    language?: string[];
};
export declare function detectCodeLanguage(output: string, grading?: GradingConfig, promptLanguages?: string, workspaceId?: string): Promise<CodeLanguageResult>;
/**
 * Evaluates if the provided text contains code written in a specific programming language.
 * Uses an LLM to detect the language(s) and presence of code.
 */
export declare function matchesContainsCodeLanguage(language: string, // The expected programming language to look for.
output: string, // The text to be evaluated for code presence.
grading?: GradingConfig, // Optional grading configuration, including the grader provider.
vars?: Record<string, string | object>, // Additional variables for prompt templating.
workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare function matchesCodeReadability(input: string, // Task assignment / description
output: string, // Code implementation to evaluate
grading?: any, // Grading config, must include 'provider' at least
vars?: Record<string, string | object>, // Optional template vars
workspaceId?: string): Promise<Omit<GradingResult, 'assertion'>>;
export declare const handleCodeReadability: ({ assertion, prompt, test, outputString, }: AssertionParams) => Promise<GradingResult>;
export {};
//# sourceMappingURL=matchers.d.ts.map