import { GossipQueue, LinearGossipQueueOpts } from "./types.js";
/**
 * Default gossip queue for all topics except for beacon_attestation
 * Support LIFO and FIFO type.
 */
export declare class LinearGossipQueue<T> implements GossipQueue<T> {
    private readonly opts;
    private readonly list;
    private _dropRatio;
    private recentDrop;
    private processedCountSinceDrop;
    constructor(opts: LinearGossipQueueOpts);
    get length(): number;
    get keySize(): number;
    getDataAgeMs(): number[];
    get dropRatio(): number;
    clear(): void;
    /**
     * Add item to gossip queue.
     * Return number of items dropped
     */
    add(item: T): number;
    next(): T | null;
    getAll(): T[];
    /**
     * Drop up to some ratio of items from the queue
     * ratio is from 0 to 1 inclusive
     * Return number of items dropped
     */
    private dropByRatio;
    /**
     * Drop up to some number of items from the queue
     * Return number of items dropped
     */
    private dropByCount;
}
//# sourceMappingURL=linear.d.ts.map