export interface ModelCost { input: number; output: number; cacheRead?: number; cacheWrite?: number; } export interface ModelLimits { context?: number; output?: number; } export interface ModelModalities { input?: string[]; output?: string[]; } export interface ModelInfo { id: string; name: string; releaseDate?: string; reasoning?: boolean; toolCall: boolean; modalities?: ModelModalities; cost?: ModelCost; limits?: ModelLimits; } export interface ProviderInfo { id: string; name: string; models: Record; } export type ProviderCatalog = Record; export declare function fetchProviderCatalog(options?: { signal?: AbortSignal; }): Promise; export declare function getCachedCatalog(): Promise; export declare function getModelCost(modelId: string): Promise; export declare function computeCost(usage: { promptTokens: number; completionTokens: number; inputTokenDetails?: { noCache?: number; cacheRead?: number; cacheWrite?: number; }; }, cost: ModelCost, options?: { anthropicCacheTtl?: '5m' | '1h'; }): number;