/**
 * Model Pricing Registry
 *
 * User-editable pricing configuration for Claude Code usage analytics.
 * Update rates below when new models are released or pricing changes.
 *
 * All rates are in USD per MILLION tokens.
 */
import { type ModelsDevPricingLookupOptions } from './models-dev/pricing-resolver';
export interface PricingRates {
    inputPerMillion: number;
    outputPerMillion: number;
    cacheCreationPerMillion: number;
    cacheReadPerMillion: number;
}
export interface ModelPricing extends PricingRates {
    /**
     * Optional per-service-tier rate overrides keyed by Anthropic's
     * `service_tier` request parameter (e.g. `'fast'`). When the lookup is
     * called with a known tier, these rates replace the base ones; otherwise
     * the base rates apply.
     */
    serviceTiers?: Record<string, PricingRates>;
}
export interface TokenUsage {
    inputTokens: number;
    outputTokens: number;
    cacheCreationTokens: number;
    cacheReadTokens: number;
}
export interface PricingLookupOptions extends ModelsDevPricingLookupOptions {
    /**
     * Anthropic `service_tier` (e.g. `'fast'`). When set and the resolved model
     * has matching `serviceTiers` rates, those are returned instead of the
     * base rates. Unknown tiers transparently fall through to base.
     */
    serviceTier?: string;
}
/**
 * Get pricing for a model with narrow fuzzy matching fallback.
 * Unknown future model families should fall back instead of inheriting the
 * first known family tier that happens to share a prefix.
 */
export declare function getModelPricing(model: string, options?: PricingLookupOptions): ModelPricing;
/**
 * Calculate cost in USD from token usage and model
 * @param usage - Token counts (input, output, cache creation, cache read)
 * @param model - Model name for pricing lookup
 * @returns Cost in USD
 */
export declare function calculateCost(usage: TokenUsage, model: string, options?: PricingLookupOptions): number;
/**
 * Get list of all known models for UI display
 */
export declare function getKnownModels(): string[];
/**
 * Check if a model has custom pricing (not using fallback)
 */
export declare function hasCustomPricing(model: string, options?: PricingLookupOptions): boolean;
//# sourceMappingURL=model-pricing.d.ts.map