import type { JevCaller } from "../observability/types.js"; import type { MikanModels } from "./models.js"; export type JevEntry = string | number | boolean | null | JevEntry[] | { [key: string]: JevEntry; }; export type JevQuestion = { type: "boolean"; instructions: JevEntry; criteria?: { true?: JevEntry; false?: JevEntry; }; } | { type: "choice"; instructions: JevEntry; criteria: Record; } | { type: "score"; instructions: JevEntry; criteria: readonly JevEntry[]; }; export type JevQuestions = Record; type JevAnswer = QUESTION extends { type: "choice"; } ? { type: "choice"; choice: string; probabilities: Record; confidence: number; } : QUESTION extends { type: "score"; } ? { type: "score"; score: number; confidence: number; } : { type: "boolean"; probability: number; }; export interface JevResult { readonly answers: { [ID in keyof QUESTIONS]: JevAnswer; }; readonly usage: { inputTokens: number | undefined; outputTokens: number | undefined; cost: number | undefined; }; readonly model: string; } export declare class JevNotConfiguredError extends Error { constructor(); } export declare class JevRequestError extends Error { constructor(message: string); } export interface EvaluateWithJevOptions { abortSignal?: AbortSignal; caller: JevCaller; } export declare function useJevModels(registry: MikanModels | undefined): void; export declare function evaluateWithJev(state: JevEntry, questions: QUESTIONS, options: EvaluateWithJevOptions): Promise>; export {}; //# sourceMappingURL=jev.d.ts.map