/** * Pure transform: Gemini API response → normalized UsageInfo. * * Kept separate so it can be unit-tested without network access or mocking * any provider internals. */ import type { UsageInfo } from "../../pricing/types.js"; interface GeminiUsageMetadata { promptTokenCount?: number; candidatesTokenCount?: number; totalTokenCount?: number; cachedContentTokenCount?: number; } interface GeminiResponseLike { candidates?: Array<{ finishReason?: string; }>; usageMetadata?: GeminiUsageMetadata; modelVersion?: string; } export interface GeminiUsageInputs { /** The raw JSON response from the Gemini API. */ raw: GeminiResponseLike; /** Model string to use when `raw.modelVersion` is absent. */ model_fallback: string; /** Wall-clock milliseconds from request start to response received. */ latency_ms: number; } /** * Convert a raw Gemini API response into a normalized UsageInfo object. * * Does NOT call `compute_cost()` — callers are responsible for enriching with * pricing data after this function returns. */ export declare function gemini_response_to_usage(inputs: GeminiUsageInputs): UsageInfo; export {}; //# sourceMappingURL=gemini_response_to_usage.d.ts.map