/** Exposed for the single log line in createEvent. */ export declare const CLIENT_THROTTLE_EVENTS_PER_WINDOW: number; interface RateWindow { windowStartMs: number; count: number; toolUseAboveThreshold: number; suppressed: number; logged: boolean; } /** * Decide whether this outbound event should be suppressed (not sent). * Deterministic given (sessionId, type, now) and prior counter state. * Exported for unit tests; resetThrottleState() clears the module map. */ export declare function shouldSuppressEvent(sessionId: string, type: string, now: number): boolean; /** * Returns the session's rate window exactly once per window — the first time the * throttle engages — for a single log line; later calls in the same window * return undefined. Keeps logging out of the hot path. */ export declare function consumeThrottleLogOnce(sessionId: string): RateWindow | undefined; /** Test-only: clears the per-process rate map. */ export declare function resetThrottleState(): void; /** Test-only: current size of the per-process rate map (eviction-bound check). */ export declare function throttleMapSize(): number; /** Test-only: whether a session is currently tracked (eviction assertions). */ export declare function throttleMapHas(sessionId: string): boolean; export {};