import { z } from "zod"; /** The authoritative money breakdown. Every component is finite and nonnegative; * `totalCost` is authoritative (never derived from the components); currency is * USD only. No extra fields are accepted. */ export declare const costBreakdownSchema: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; export type CostBreakdown = z.infer; /** The token breakdown. Every count is a nonnegative safe integer; `totalTokens` * is authoritative. No extra fields are accepted. */ export declare const tokenBreakdownSchema: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; export type TokenBreakdown = z.infer; export declare const usageKindSchema: z.ZodEnum<{ embedding: "embedding"; transcription: "transcription"; completion: "completion"; image: "image"; speech: "speech"; decision: "decision"; manual: "manual"; }>; export type UsageKind = z.infer; /** One `(model, kind)` attribution row. The model sentinel `""` marks manual * charges (`addCost`); provider kinds always carry a non-empty model. */ export declare const modelKindSpendSchema: z.ZodObject<{ model: z.ZodString; kind: z.ZodEnum<{ embedding: "embedding"; transcription: "transcription"; completion: "completion"; image: "image"; speech: "speech"; decision: "decision"; manual: "manual"; }>; cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>; export type ModelKindSpend = z.infer; export declare const projectSpendSchema: z.ZodObject<{ cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; invocationCount: z.ZodNumber; unpricedCallCount: z.ZodNumber; pricingComplete: z.ZodBoolean; usageComplete: z.ZodBoolean; breakdown: z.ZodArray; cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>>; breakdownTruncated: z.ZodBoolean; otherSpend: z.ZodObject<{ cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>; export type ProjectSpend = z.infer; export declare const accountSpendRowSchema: z.ZodObject<{ projectSlug: z.ZodString; deletedAt: z.ZodNullable; spend: z.ZodObject<{ cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; invocationCount: z.ZodNumber; unpricedCallCount: z.ZodNumber; pricingComplete: z.ZodBoolean; usageComplete: z.ZodBoolean; breakdown: z.ZodArray; cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>>; breakdownTruncated: z.ZodBoolean; otherSpend: z.ZodObject<{ cost: z.ZodObject<{ inputCost: z.ZodNumber; outputCost: z.ZodNumber; cachedInputCost: z.ZodNumber; cacheCreationInputCost: z.ZodNumber; hostedToolsCost: z.ZodNumber; totalCost: z.ZodNumber; currency: z.ZodLiteral<"USD">; }, z.core.$strict>; tokens: z.ZodObject<{ inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; cachedInputTokens: z.ZodNumber; cacheCreationInputTokens: z.ZodNumber; totalTokens: z.ZodNumber; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>; }, z.core.$strict>; export type AccountSpendRow = z.infer; /** A half-open `[from, to)` window in epoch milliseconds; either bound may be * null (open on that side). */ export type SpendWindow = { from: number | null; to: number | null; }; /** Serialize a window to the endpoints' query params — a bound is included only * when set, as a decimal string. Shared so both clients serialize identically. */ export declare function toSpendQuery(window: SpendWindow): Record;