import type { AggregateUsage } from '@genesislcap/foundation-ai';
/**
 * The baseline resolved for `key`, or `undefined` when this session has not resolved one yet.
 *
 * `undefined` rather than an empty usage: "nothing banked" is a legitimate resolved value (a
 * project's first ever session), and it must not be mistaken for "not resolved", or every write
 * would re-derive and hit the double-count above.
 *
 * @internal
 */
export declare function getBankedBaseline(key: string): AggregateUsage | undefined;
/** Record the baseline for `key`, replacing any previous one. @internal */
export declare function setBankedBaseline(key: string, usage: AggregateUsage): void;
/**
 * Drop the baseline for `key`, so the next write re-derives it from the ledger rows.
 *
 * For when the pairing is broken deliberately at the *row* end — the row this baseline came from
 * has been deleted, or the whole ledger cleared — and for a session teardown, where the store
 * (and with it the transcript) is disposed and a later return re-restores from scratch.
 *
 * NOT for a mid-session reload of the rows: those rows already include this session's own
 * upserts, so re-deriving from them folds the live transcript into its own baseline.
 *
 * @internal
 */
export declare function deleteBankedBaseline(key: string): void;
/**
 * Forget every baseline — the page-load boundary, which production gets for free from module
 * state dying with the realm. Exists so tests can model separate page loads (and so one test's
 * session key cannot leak a baseline into the next).
 *
 * @internal
 */
export declare function resetBankedBaselines(): void;
//# sourceMappingURL=banked-usage-baselines.d.ts.map