import type { Evaluation, IntegrationErrorCode, Questions, SystemOneRequest, TypeSafe } from "pi-typesafe"; /** Anything with pi-typesafe's `evaluate`: the real client in a session, a stub in tests. */ export type Judge = Pick; export interface AskOptions { timeoutMs: number; signal?: AbortSignal | undefined; } export type JevAnswer = { ok: true; answers: Evaluation["answers"]; model: string; elapsedMs: number; } | { ok: false; error: string; errorCode?: IntegrationErrorCode; }; /** * One Jev request with the per-guard timeout merged into the caller's abort signal. Never throws: a failure comes back as * `{ ok: false }` with pi-typesafe's own message (which carries no upstream body) and its code, so the caller can stop * asking after a `budget` error. Unknown errors get a fixed message so nothing from the transport reaches the user. */ export declare function askJev(judge: Judge, request: SystemOneRequest, options: AskOptions): Promise>;