export interface RingBufferEntry { data: T; readonly timestamp: number; readonly index: number; } export type RingBufferSlice = readonly RingBufferEntry[]; export declare class RingBuffer { private readonly entries; private readonly capacity; private nextIndex; private totalAppended; constructor(capacity: number); append(item: T): RingBufferEntry; appendOrMerge(item: T, condition: (lastEntry: RingBufferEntry) => boolean, merge: (last: T, next: T) => T): RingBufferEntry; slice(): RingBufferSlice; get size(): number; getLastN(n: number): RingBufferSlice; getSinceIndex(index: number): { entries: RingBufferSlice; nextIndex: number; oldestIndex: number; }; clear(): void; }