import type { UsageAuthorization } from "./consultation-billing"; import type { PromptCacheUsage } from "./agent-generation-settings"; export type ReportBillingUsage = Readonly<{ actualModelId: string; modelConfigVersion?: number; inputTokens: number; outputTokens: number; durationMs: number; cache?: PromptCacheUsage | null; }>; export type ReportBillingPort = Readonly<{ reserve(input: Readonly<{ userId: string; requestId: string; modelId: string; }>): Promise; complete(input: Readonly<{ userId: string; requestId: string; usage: ReportBillingUsage; }>): Promise; release(input: Readonly<{ userId: string; requestId: string; reason: string; }>): Promise; }>;