/**
 * A bounded FIFO queue that evicts the oldest item when at capacity.
 *
 * Wraps a plain array with push/shift semantics — the standard pattern
 * for bounded event logs where reads (.filter, .slice, .map, for...of)
 * dominate. V8 already optimizes Array.shift() for this pattern.
 */
export declare class EvictingQueue<T> {
    private readonly maxSize;
    private items;
    constructor(maxSize: number);
    /** Add an item. If at capacity, the oldest item is evicted. */
    push(item: T): void;
    /** Number of items currently in the queue. */
    get size(): number;
    /** Maximum capacity. */
    get capacity(): number;
    /** Get the underlying array (read-only view). Oldest first. */
    toArray(): readonly T[];
    /** Remove all items. */
    clear(): void;
    /** Replace contents with a new array (for time-based pruning). */
    reset(items: T[]): void;
    /** Support for...of iteration. */
    [Symbol.iterator](): Iterator<T>;
    /** JSON serialization — produces plain array. */
    toJSON(): T[];
}
//# sourceMappingURL=EvictingQueue.d.ts.map