import type { ModelMessage } from 'ai'; import type { TestCaseResult } from '../types/testCaseResult.js'; interface LlmJudgePresetOptions { buildPrompt?: (context: { prompt: string; testCase: { id: string; input?: string; output?: string; }; }) => string | ModelMessage[]; test: (context: { testCase: { id: string; input?: string; output?: string; }; result: { output: string; }; }) => Partial | Promise>; } /** * A preset judge function for running and testing a user prompt in LLM. * * @example * Create `judge.ts`: * ```ts * import { llmJudgePreset } from '@exercode/problem-utils/presets/llm'; * import { DecisionCode } from '@exercode/problem-utils'; * * await llmJudgePreset(import.meta.dirname, { * test: (context) { * return { decisionCode: context.result.output ? DecisionCode.ACCEPTED : DecisionCode.WRONG_ANSWER }; * } * }); * ``` * * Run with the required parameters: * ```bash * bun judge.ts model_answers/java '{ "model": "gemini-2.5-flash-lite" }' * ``` */ export declare function llmJudgePreset(problemDir: string, options: LlmJudgePresetOptions): Promise; export {};