/** * AgentGuard(TM) Spend: OpenRouter catalog sync. * * OpenRouter requests go directly from the customer runtime to openrouter.ai. * AgentGuard infrastructure does not receive prompts, completions, keys, * policy files, or pricing overrides. * * Patent notice: Protected by U.S. patent-pending technology * (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626; * 64/071,781; 64/071,789). */ import { type ModelCost } from './cost-table'; export interface OpenRouterPricing { prompt?: string; completion?: string; image?: string; request?: string; } export interface OpenRouterModel { id: string; name?: string; context_length?: number; pricing?: OpenRouterPricing; architecture?: { modality?: string; tokenizer?: string; instruct_type?: string | null; }; top_provider?: { context_length?: number; max_completion_tokens?: number | null; is_moderated?: boolean; }; per_request_limits?: Record | null; [key: string]: unknown; } export interface OpenRouterCatalog { data: OpenRouterModel[]; fetchedAt?: string; } export interface FetchCatalogOptions { ttlMs?: number; force?: boolean; endpoint?: string; cachePath?: string; } export interface SyncPricingResult { count: number; applied: string[]; } export declare function fetchCatalog(opts?: FetchCatalogOptions): Promise; export declare function getCachedCatalog(cachePath?: string): OpenRouterCatalog | null; export declare function syncPricingIntoCostTable(opts?: FetchCatalogOptions): Promise; export declare function persistOverrides(filePath?: string): void; export declare function modelCostFromOpenRouter(model: OpenRouterModel): ModelCost | null; //# sourceMappingURL=openrouter-catalog.d.ts.map