import type { UsageRecordedPacket } from "./packets.js"; import { type PriceCatalog } from "./pricing.js"; export interface SpendCapConfig { readonly maxUsd: number; readonly catalog?: PriceCatalog; } export interface SpendCapCheck { readonly exceeded: boolean; readonly spentUsd: number; } /** * Accumulates priced `usage.recorded` into session spend and reports whether a * configured USD cap has been breached. Does not call providers; the session * layer decides refuse/fallback from `check()`. */ export declare class SpendCapGuard { private readonly maxUsd; private readonly catalog; private spentUsd; private exceeded; constructor(cfg: SpendCapConfig); /** Observe one usage packet. Unpriced usage does not change spentUsd. */ record(usage: UsageRecordedPacket): void; /** Read-only policy view — never mutates spend. */ check(): SpendCapCheck; } //# sourceMappingURL=spend-cap.d.ts.map