import type { AIProvider } from "../types.js"; import type { InvokeTokenUsage } from "./computeInvokeCost.js"; /** * Activix-compatible snake_case usage keys (parity with ai-tools `calculateFromRecord`). */ export interface InvokeUsageTokens { prompt_tokens: number; completion_tokens: number; total_tokens?: number; cachedTokensPrompt?: number; cached_prompt_tokens?: number; cache_write_tokens?: number; reasoning_tokens?: number; audio_tokens?: number; image_tokens?: number; } /** * Activix / FuncX invoke billing record shape (parity with ai-tools `calculateFromRecord` input). */ export interface InvokePricingRecord { model?: string; modelAlias?: string; modelUsed?: string; usedModel?: string; provider?: string; routing?: "openrouter" | "direct"; profileChoice?: { profile: string; choice: string; }; usage: InvokeUsageTokens; metadata?: { maxTokensRequested?: number; }; } export declare function normalizeInvokeUsageTokens(usage: InvokeUsageTokens): InvokeTokenUsage; export declare function resolveModelFromInvokeRecord(record: InvokePricingRecord): string | { provider: AIProvider; modelId: string; }; /** * Build an Activix-compatible invoke billing record from resolved invoke metadata. */ export declare function buildInvokePricingRecord(input: { model: string; provider?: AIProvider; routing?: "openrouter" | "direct"; profileChoice?: { profile: string; choice: string; }; usage: InvokeTokenUsage | InvokeUsageTokens; metadata?: InvokePricingRecord["metadata"]; }): InvokePricingRecord; //# sourceMappingURL=invokePricingRecord.d.ts.map