import type { AiAdapter, JudgeInvocation, JudgeReply } from "./ai-types.js"; /** Every AI with an adapter, in the order a page should offer them. */ export declare const ADAPTERS: readonly AiAdapter[]; /** * The AIs lookout can judge with, by the key the page knows each tool as. * * Derived from the registry so the two can never disagree. Order is the * registry's order, which is the order the settings panel paints its rows in. */ export declare const JUDGES: readonly string[]; /** One AI by key, or the reason there is no such judge. */ export declare function adapterFor(key: string): AiAdapter; /** Whether a key names an AI that can judge, for validating what was stored. */ export declare function isJudge(key: string): boolean; /** One round trip with a named AI. */ export declare function invokeAi(key: string, inv: JudgeInvocation): Promise; /** * The AI a call uses when nobody named one. * * The registry's first entry. Judging is still one AI per call, so this is * what every prompt builder falls back to; when a call names its own AI, that * one answers instead. */ export declare const PRIMARY_AI: string; /** * How to tell THIS AI to open a screenshot, for the skill's `{{howToOpen}}`. * * One function because five prompt builders ask, and five spellings of the * same question is how a page comes to promise one thing while the run does * another. An unknown key falls back to the primary rather than throwing: a * prompt is not the place to discover a bad configuration, and the invocation * that follows will refuse it properly. */ export declare function readingInstructionFor(key?: string): string;