import { Type, type Static } from "typebox"; declare const Stats: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; declare const Summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; declare const Spend: Type.TObject<{ at: Type.TNumber; model: Type.TString; stats: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; }>; declare const HistoryScan: Type.TObject<{ from: Type.TNumber; to: Type.TNumber; windowStart: Type.TNumber; root: Type.TString; coverage: Type.TObject<{ sessions: Type.TNumber; skippedCopies: Type.TNumber; incompleteEntries: Type.TNumber; unattributedUsage: Type.TNumber; unreadablePaths: Type.TOptional; warnings: Type.TArray; }>; total: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; months: Type.TRecord<"^.*$", Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>>; previous: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; recent: Type.TArray; }>>; nonstandard: Type.TOptional; }>; declare const Period: Type.TObject<{ start: Type.TNumber; expectedReset: Type.TNumber; source: Type.TUnion<[Type.TLiteral<"inferred">, Type.TLiteral<"manual">, Type.TLiteral<"session-history">]>; partial: Type.TBoolean; summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; approximate: Type.TOptional; quota: Type.TOptional>; quotaPerUsd: Type.TOptional; }>; declare const Account: Type.TObject<{ since: Type.TNumber; total: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; months: Type.TRecord<"^.*$", Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>>; nonstandard: Type.TOptional; recent: Type.TArray; }>>; current: Type.TOptional, Type.TLiteral<"manual">, Type.TLiteral<"session-history">]>; partial: Type.TBoolean; summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; approximate: Type.TOptional; quota: Type.TOptional>; quotaPerUsd: Type.TOptional; }>>; closed: Type.TRecord<"^.*$", Type.TObject<{ start: Type.TNumber; expectedReset: Type.TNumber; source: Type.TUnion<[Type.TLiteral<"inferred">, Type.TLiteral<"manual">, Type.TLiteral<"session-history">]>; partial: Type.TBoolean; summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; approximate: Type.TOptional; quota: Type.TOptional>; quotaPerUsd: Type.TOptional; end: Type.TNumber; closedAt: Type.TNumber; reason: Type.TUnion<[Type.TLiteral<"scheduled">, Type.TLiteral<"early">, Type.TLiteral<"gap">, Type.TLiteral<"backfill">]>; quotaEstimate: Type.TOptional; }>>; previous: Type.TOptional; unassignedUsd: Type.TNumber; missingWeeklyObservations: Type.TNumber; recordingGaps: Type.TNumber; lastObservation: Type.TOptional; manualResetAt: Type.TOptional; history: Type.TOptional; warnings: Type.TArray; }>; importedAt: Type.TNumber; accountIdentity: Type.TLiteral<"unverified">; }>>; }>; declare const Ledger: Type.TObject<{ version: Type.TLiteral<1>; accounts: Type.TRecord<"^.*$", Type.TObject<{ since: Type.TNumber; total: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; months: Type.TRecord<"^.*$", Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>>; nonstandard: Type.TOptional; recent: Type.TArray; }>>; current: Type.TOptional, Type.TLiteral<"manual">, Type.TLiteral<"session-history">]>; partial: Type.TBoolean; summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; approximate: Type.TOptional; quota: Type.TOptional>; quotaPerUsd: Type.TOptional; }>>; closed: Type.TRecord<"^.*$", Type.TObject<{ start: Type.TNumber; expectedReset: Type.TNumber; source: Type.TUnion<[Type.TLiteral<"inferred">, Type.TLiteral<"manual">, Type.TLiteral<"session-history">]>; partial: Type.TBoolean; summary: Type.TObject<{ total: Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>; models: Type.TRecord<"^.*$", Type.TObject<{ usd: Type.TNumber; input: Type.TNumber; output: Type.TNumber; cacheRead: Type.TNumber; cacheWrite: Type.TNumber; requests: Type.TNumber; unpriced: Type.TNumber; }>>; }>; approximate: Type.TOptional; quota: Type.TOptional>; quotaPerUsd: Type.TOptional; end: Type.TNumber; closedAt: Type.TNumber; reason: Type.TUnion<[Type.TLiteral<"scheduled">, Type.TLiteral<"early">, Type.TLiteral<"gap">, Type.TLiteral<"backfill">]>; quotaEstimate: Type.TOptional; }>>; previous: Type.TOptional; unassignedUsd: Type.TNumber; missingWeeklyObservations: Type.TNumber; recordingGaps: Type.TNumber; lastObservation: Type.TOptional; manualResetAt: Type.TOptional; history: Type.TOptional; warnings: Type.TArray; }>; importedAt: Type.TNumber; accountIdentity: Type.TLiteral<"unverified">; }>>; }>>; historyOwner: Type.TOptional; }>; export type SpendStats = Static; export type SpendSummary = Static; export type CodexSpend = Static; export type UsagePeriod = Static; export type UsageAccount = Static; export type UsageLedger = Static; export type UsageHistoryScan = Static; export declare function parseUsageHistory(value: unknown): UsageHistoryScan; export declare function parseUsageLedger(value: unknown): UsageLedger; export declare function emptyStats(): SpendStats; export declare function emptySummary(): SpendSummary; export {};