/** * Fire-and-forget cost telemetry from a subprocess to its parent, so * parent-side cost guards see child LLM spend live (see * docs/superpowers/specs/2026-07-02-subprocess-cost-telemetry-design.md). * * Deliberately dependency-light (the subprocessRunInfo.ts layering * pattern — the only import IS subprocessRunInfo, itself dependency-free): * `StateStack.billCharge` calls this on every paid charge, and stateStack * must not import ipc.ts. * * Never blocks and never throws: there is no reply, no listener, and a * dead channel is swallowed — the bootstrap disconnect watchdog is about * to reap this process anyway. */ export type IpcTelemetryMessage = { type: "telemetry"; costUsd: number; }; /** The wire contract for a billable cost: a positive finite number. * Shared by the sender and the parent-side handler so both ends of the * channel enforce the same rule (the receiving side matters more — the * child is the less-trusted party). */ export declare function isPayableCost(costUsd: unknown): costUsd is number; export declare function sendCostTelemetryToParent(costUsd: number): void;