export interface FilterFunction { (value: T, index: number): boolean; } export declare class RingBuffer { #private; static from(values: T[]): RingBuffer; readonly [Symbol.toStringTag] = "RingBuffer"; constructor(capacity?: number); get capacity(): number; get length(): number; isEmpty(): boolean; isWrapped(): boolean; getHeadOffset(index: number): number; getTailOffset(index: number): number; resize(capacity: number): boolean; grow(capacity?: number): void; allocate(index: number, count: number): boolean; deallocate(index: number, count: number): boolean; indexOf(value: T, index?: number): number; unwrap(): boolean; compact(filter: FilterFunction): boolean; set(index: number, values: T[], insert?: boolean): boolean; setOne(index: number, value: T, insert?: boolean): boolean; slice(start?: number, end?: number): T[]; removeOne(index: number): number; removeFirst(value: T, index?: number): number; remove(index: number, count: number): T[]; push(value: T): this; unshift(value: T): this; shift(): T | undefined; pop(): T | undefined; peekAt(index: number): T | undefined; peekFirst(): T | undefined; peekLast(): T | undefined; has(value: T): boolean; clear(): this; toArray(): T[]; drain(): IteratorObject; iter(): IteratorObject; [Symbol.iterator](): Iterator; }