import type { DefaultModelSelection, LatencyMode, ReasoningEffort, WorkspaceModelCatalogModel } from "@opengeni/sdk"; import { type PickerModelRow } from "./model-policy.js"; /** * Is this deployment-catalog model absent from the loaded workspace catalog? * The catalog lists every deployment model a new message may use, so absence * means it was retired or removed and the API refuses it with * `details.code: "model_unavailable"`. Connection-owned ids are left to that * refusal. Unknown until the catalog has loaded; a refresh judges against the * previous list. */ export declare function sessionModelMissingFromCatalog(input: { model: string; models: readonly WorkspaceModelCatalogModel[]; error: string | null; }): boolean; /** * A readable name for a model the catalog no longer describes: the shared * display name, never the routing id (`openrouter/vendor/name:free` becomes * `Name`, `codex/gpt-6.1-sol` becomes `GPT-6.1 Sol`). */ export declare function unavailableModelName(modelId: string): string; export type UnavailableModelReplacement = { model: string; label: string; reasoningEffort: ReasoningEffort; /** Set only when the session's speed is not runnable on the replacement. */ latencyMode: LatencyMode | null; }; /** * The composer selection offered in place of an unavailable session model: * the server-resolved default when selectable, else a selectable connected * service, else the first selectable model in picker order. A * remote-compaction session stays on Codex models. Applies only to the next * message; accepted turns and history keep their frozen model. */ export declare function unavailableModelReplacement(input: { rows: readonly PickerModelRow[]; defaultSelection: DefaultModelSelection | null; latencyMode: LatencyMode; codexOnly: boolean; }): UnavailableModelReplacement | null;