import type { EffectivePaceSummary, EffectiveRunway, EffectiveSelection, QuotaPace, QuotaWindow } from "./types.js"; /** Reserve within this many percentage points of zero is treated as on_pace. */ export declare const PACE_ON_PACE_DEADBAND_PERCENT_POINTS = 1; /** * Linear exhaustion projections before this much of the cycle has elapsed are * labeled `early` rather than `established`. */ export declare const PACE_EARLY_ELAPSED_PERCENT = 10; /** The selection scalar is reported within this symmetric bound. */ export declare const SELECTION_CLAMP_PERCENT_POINTS = 100; /** * Below this much remaining cycle time the selection ratio is dominated by the * four-decimal rounding of `timeRemainingPercent` rather than by real signal, * so the window is treated as unmeasurable instead of producing a runaway or * infinite term. */ export declare const SELECTION_MIN_TIME_REMAINING_PERCENT = 0.01; type PaceOptions = { stale?: boolean; }; export declare function computeWindowPace(window: QuotaWindow, generatedAt: string, options?: PaceOptions): QuotaPace; export declare function computeEffectiveRunway(windows: QuotaWindow[], generatedAt: string): EffectiveRunway; export declare function summarizeEffectivePace(windows: QuotaWindow[]): EffectivePaceSummary; /** * Cycle-weighted mean, across a scope's bounding windows, of the allowance each * window is projected to forfeit at reset if its observed burn continues: * * gap_w = percentRemaining_w / timeRemainingPercent_w - burnMultiple_w * scopeMetric = SUM(gap_w * cycleSeconds_w) / SUM(cycleSeconds_w) * * `gap_w` is the per-window projected forfeiture `percentRemaining - * burnMultiple * timeRemainingPercent` divided by `timeRemainingPercent`, which * makes windows on different cycle clocks comparable. Positive means allowance * is on track to reach reset unused; `0` is exact utilization; negative means * the window is overdrawn against its reset clock. * * Any bounding window without usable pace makes the whole scope unmeasurable: * an unknown window is never assumed healthy and never defaults to zero. */ export declare function summarizeEffectiveSelection(windows: QuotaWindow[]): EffectiveSelection; export {};