import type { WorkspaceModelCatalogModel } from "@opengeni/sdk"; import { type PickerModelRow } from "../model-policy.js"; import { type ClientOverride } from "../session-context.js"; export type UseAvailableModelsOptions = Pick & { /** Refresh interval (ms). Off by default — the host model list rarely moves. */ pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseAvailableModelsResult = { models: import("@opengeni/sdk").ClientModel[]; defaultModel: string | null; loading: boolean; error: Error | null; refresh: () => Promise; }; export type UseWorkspaceModelCatalogOptions = Pick & { workspaceId: string | null; pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseWorkspaceModelCatalogResult = { models: WorkspaceModelCatalogModel[]; rows: PickerModelRow[]; defaultModel: string | null; loading: boolean; error: Error | null; refresh: () => Promise; }; /** * The host-exposed model list for a : fetches the deployment's * public client config (`GET /v1/config/client`) and surfaces the richer * provider-grouped `models` plus the `defaultModel` the picker should preselect. * Deployment-scoped, so it only needs the client (no workspace). Mounted readers * of one client share one request. */ export declare function useAvailableModels(options?: UseAvailableModelsOptions): UseAvailableModelsResult; /** * Workspace-scoped catalog with selectability and billing-class picker rows. * Mounted readers of one workspace (the conversation and the new-chat composer) * share one catalog and config request. */ export declare function useWorkspaceModelCatalog(options: UseWorkspaceModelCatalogOptions): UseWorkspaceModelCatalogResult;