import { type RegistryData } from '../models/data.js'; import { type ParsedArgs } from './args.js'; /** How the command reaches the outside: replaced in tests. */ export interface ModelsCommandIo { fetch: typeof fetch; env: Record; } /** * `nexus models export | check | refresh`: registry data as a file the application keeps. * * `export` writes the bundled data, as a file to start from. `check` validates a file and says how it * differs from the bundled data. `refresh` lists each provider's models with the keys in the * environment and compares them with the data: what the data lacks, and what the provider no longer * lists. Prices are not in any provider's model list, so they stay a check against its pricing page. */ export declare function runModelsCommand(subcommand: string, { positionals, flags }: ParsedArgs, io?: ModelsCommandIo): Promise; /** How the data compares with what one provider lists. */ export interface RefreshRow { /** The provider. */ provider: string; /** Models the provider lists that the data does not have. */ missing: string[]; /** Models the data has for the provider that it no longer lists. */ unlisted: string[]; } /** Compares registry data with each provider's model list, completion and embedding models alike. */ export declare function refreshReport(data: RegistryData, listings: Record): RefreshRow[]; interface ProviderList { /** The environment variable that holds its key. */ env: string; /** Every model id it lists. */ list(key: string, fetch: typeof globalThis.fetch): Promise; } /** Each provider's own model list, read with the application's key: nothing else is contacted. */ export declare const PROVIDER_LISTS: Record; export {};