/** * The push ring (DES-TRIGGER-REGISTRY-001 ยง4.6): where the daemon fan-in and the watchdog tee drop * their key points. A push is O(1) and never blocks the producer. * * Capacity is shared by three priority classes. On overflow the oldest `p2` item goes first, then * the oldest `p1`. A `p0` item is NEVER shed: when only `p0` items remain the ring grows past its * capacity rather than lose one (`claim-vs-evidence` and `deliver-audit` are `p0`). */ import type { WatchPriority } from 'wicked-crew-api-types'; export interface RingStats { depth: number; /** The deepest the ring has been since boot. */ hwm: number; shed_by_priority: Record; } export declare class PushRing { readonly capacity: number; private readonly classes; private seq; private hwm; private readonly shed; /** Called once per shed item (the registry raises one `registry-lagging` flag per episode). */ onShed: ((priority: WatchPriority) => void) | undefined; constructor(capacity?: number); get depth(): number; /** O(1); never throws, never blocks. */ push(item: T, priority: WatchPriority): void; /** The oldest item across classes, in arrival order. */ shift(): T | undefined; stats(): RingStats; } //# sourceMappingURL=ring.d.ts.map