import type { ProviderRuntimeMetadata } from './interface.js'; import type { ProviderRegistry } from './registry.js'; export interface ProviderModelSnapshot { readonly id: string; readonly registryKey: string; readonly displayName: string; readonly selectable: boolean; readonly contextWindow: number; readonly tier?: string | undefined; readonly pricing?: { readonly inputPerMillionTokens: number; readonly outputPerMillionTokens: number; readonly currency: 'USD'; /** Where the rates came from: 'user' (manual/registration, "your price"), 'provider' (served rates), 'catalog' (dated catalog). */ readonly source: 'user' | 'provider' | 'catalog'; /** ISO date (YYYY-MM-DD) of the catalog/provider pricing snapshot; absent for user prices. */ readonly asOf?: string | undefined; }; } export interface ProviderRuntimeSnapshot { readonly providerId: string; readonly active: boolean; readonly modelCount: number; readonly runtime: ProviderRuntimeMetadata; readonly models: readonly ProviderModelSnapshot[]; } export interface ProviderUsageSnapshot { readonly providerId: string; readonly active: boolean; readonly currentModelRegistryKey?: string | undefined; /** * Where the served prices came from: a single source when every priced * model agrees ('user' = manual/registration, "your price"; 'provider' = * provider-served rates; 'catalog' = the dated catalog), 'mixed' when they * disagree, or 'none' when no model carries pricing. */ readonly pricingSource: 'user' | 'catalog' | 'provider' | 'mixed' | 'none'; /** Oldest ISO date (YYYY-MM-DD) among the dated (catalog/provider) model prices served; absent when none carried a date. */ readonly pricingAsOf?: string | undefined; readonly models: readonly ProviderModelSnapshot[]; readonly usage: NonNullable; } export declare function listProviderRuntimeSnapshots(providerRegistry: Pick): Promise; export declare function getProviderRuntimeSnapshot(providerRegistry: Pick, providerId: string): Promise; export declare function getProviderUsageSnapshot(providerRegistry: Pick, providerId: string): Promise; //# sourceMappingURL=runtime-snapshot.d.ts.map