import { type QuotaSnapshot, type QuotaSubject } from "@claudexor/schema"; /** Demand identity: one credential subject regardless of route or source. */ export declare function quotaSubjectIdentity(subject: QuotaSubject): string; /** Only fresh matching primary evidence satisfies a registered subject. * Reactive/spool evidence remains in the projection but is irrelevant here. * Undefined preserves the legacy embedder contract of one fresh primary; * an explicitly empty universe means no demand. */ export declare function remainingQuotaRefreshDemand(snapshots: readonly QuotaSnapshot[], subjects?: readonly QuotaSubject[], dueBefore?: number): Set; /** The renewal horizon: the earliest instant strictly after `after` at which * a snapshot that satisfies a registered subject becomes due. Null when no * satisfying evidence is due later than `after`. Evidence already due by * `after` is unsatisfied demand and belongs to the retry ladder, never to * renewal — so a pre-aged result feeds the ladder instead of tight-polling. */ export declare function earliestQuotaRenewalAt(snapshots: readonly QuotaSnapshot[], subjects: readonly QuotaSubject[] | undefined, after: number): number | null; /** The earliest due instant — strictly after `now`, no later than `deadline` * — of satisfying evidence observed at or after `since`: a vendor window * boundary (`resets_at`) that falls within the next tick of the very cycle * that observed the evidence. Such evidence is renewal due at the next tick, * never ladder demand; a pre-aged result (observed before `since`) still * feeds the ladder. Null when there is none. */ export declare function earliestFreshRenewalAt(snapshots: readonly QuotaSnapshot[], subjects: readonly QuotaSubject[] | undefined, since: number, now: number, deadline: number): number | null; /** The latest observation instant among satisfying evidence whose renewal is * due in `(after, deadline]` — what the poll sweep compares with the retry * ladder's arm time: evidence observed after the ladder was armed (a * foreground refresh, an ingested harness event) bypasses the ladder. Null * when no satisfying evidence is due in that window. */ export declare function latestQuotaRenewalObservedAt(snapshots: readonly QuotaSnapshot[], subjects: readonly QuotaSubject[] | undefined, after: number, deadline: number): number | null; //# sourceMappingURL=quota-refresh-demand.d.ts.map