import type { JudgeQuestions, JudgeState, JudgeVerdict } from "../types/judge"; /** What a judge call needs: where the server is, and who is asking. */ export type JudgeRequestOptions = { serverURL?: string; /** The path of the judge route, when it is not the default. */ path?: string; apiKey: string; debug?: boolean; }; export type JudgeOptions = JudgeRequestOptions & { /** * The facts the questions are answered from: the message, who sent it, the rules, numbers * and dates already worked out in code. Never a transcript or an argument for an answer. */ state: JudgeState; /** The questions, by the id the answer is read back under. All are judged against the same state in one call. */ questions: Q; }; /** * Asks the judge: a yes/no, pick-one or score decision on the facts given, made by a decision * model in well under a second for a fraction of a cent. * * The answers come back keyed by question id and typed by the question: a boolean's `value` and * `probability`, a choice's `choice` (one of its criteria's keys), `confidence` and * `probabilities`, a score's `level`, `score` and `confidence`. The model writes no text and * gives no reason. * * A question the judge cannot ask (a boolean missing one side, a choice with one label, a score * with more than ten levels) is a 400 carrying the judge's own message, and a judgement not * reached is a 503: the call throws a `ButlerBotAPIError` either way, never a guess. */ export declare function judge(options: JudgeOptions): Promise>;