import { type ModelPickerBillingClass } from "@opengeni/sdk/model-picker-order"; import type { ClientModel, ReasoningEffort, WorkspaceModelCatalogModel } from "@opengeni/sdk"; import { type OpenGeniText } from "./messages/runtime.js"; export type PickerBillingClass = ModelPickerBillingClass; export type PickerModelRow = { id: string; label: string; /** Catalog-curated compact label for dense UI; fall back to `label` when absent. */ shortLabel?: string | undefined; billingClass: PickerBillingClass; billingClassLabel: string; selectable: boolean; unavailableReason: string | null; fundingHint?: string | undefined; provider: string; providerLabel: string; catalog: TCatalog; }; export type LatencyModeId = "standard" | "priority" | "fast" | "ultrafast"; export declare function billingClassForModel(model: ClientModel): PickerBillingClass; export declare function billingClassLabel(t: OpenGeniText, billingClass: PickerBillingClass): string; /** The group label that names the connection scope, for Models settings only. */ export declare function scopedBillingClassLabel(t: OpenGeniText, billingClass: PickerBillingClass): string; export declare function availabilityReasonLabel(t: OpenGeniText, reason: WorkspaceModelCatalogModel["availability"]["reason"]): string | null; export declare function effortOptionsForModel(model: ClientModel): ReasoningEffort[]; export declare function defaultEffortForModel(model: ClientModel): ReasoningEffort; export declare function coerceReasoningEffortForModel(model: ClientModel, effort: ReasoningEffort): ReasoningEffort; /** Whether the composer offers (and therefore labels) a reasoning-effort choice. */ export declare function modelOffersEffortChoice(model: ClientModel): boolean; /** * The composer model pill at phone width: the catalog's compact name (falling * back to the display name) and the effort label when effort is a choice. */ export declare function compactModelPill(t: OpenGeniText, models: readonly ClientModel[], modelId: string, effort: ReasoningEffort | null | undefined): { name: string; effort: string | null; }; export declare function runnableLatencyModesForModel(model: ClientModel): LatencyModeId[]; export declare function labelLatencyMode(t: OpenGeniText, mode: LatencyModeId): string; export declare function labelReasoningEffort(t: OpenGeniText, effort: ReasoningEffort): string; /** Payment prompts must use cost policy, never the presentation group. */ export declare function modelUsesCredits(model: ClientModel | undefined): boolean; export declare function payerSummaryForModel(t: OpenGeniText, model: ClientModel): string; export declare function advancedSourceSummary(t: OpenGeniText, model: ClientModel): string | null; /** * Older published Site hosts list bare `{ id }` rows. A row without readiness * or availability is one the server offers, so it is ready and selectable. */ export declare function projectPickerRows(t: OpenGeniText, models: WorkspaceModelCatalogModel[]): PickerModelRow[]; /** Project the lightweight client-config model list into the same picker contract. */ export declare function projectClientModelRows(t: OpenGeniText, models: ClientModel[]): PickerModelRow[]; export declare function sortPickerRows(rows: PickerModelRow[]): PickerModelRow[]; export declare function findPickerRow(rows: PickerModelRow[], modelId: string): PickerModelRow | null; export type GroupPickerRowsOptions = { codexOnly?: boolean; /** * Default true: organization- and workspace-connected keys share one group * and identical copies show once. Models settings passes false. */ collapseScopes?: boolean | undefined; /** Kept visible when it has an identical twin (see below). */ selectedId?: string | undefined; }; export declare function groupPickerRowsByBillingClass(t: OpenGeniText, rows: PickerModelRow[], options?: GroupPickerRowsOptions): Array<{ billingClass: PickerBillingClass; label: string; rows: PickerModelRow[]; }>; export declare function groupPickerRowsByBillingClass(t: OpenGeniText, rows: PickerModelRow[], options?: GroupPickerRowsOptions): Array<{ billingClass: PickerBillingClass; label: string; rows: PickerModelRow[]; }>; export { modelDisplayName, modelVendor } from "@opengeni/sdk/model-display";