import { ICircularList } from './Types'; import { EventEmitter2, IEvent } from './EventEmitter2'; export interface IInsertEvent { index: number; amount: number; } export interface IDeleteEvent { index: number; amount: number; } export declare class CircularList implements ICircularList { private _maxLength; protected _array: (T | undefined)[]; private _startIndex; private _length; onDeleteEmitter: EventEmitter2; readonly onDelete: IEvent; onInsertEmitter: EventEmitter2; readonly onInsert: IEvent; onTrimEmitter: EventEmitter2; readonly onTrim: IEvent; constructor(_maxLength: number); maxLength: number; length: number; get(index: number): T | undefined; set(index: number, value: T | undefined): void; push(value: T): void; recycle(): T; readonly isFull: boolean; pop(): T | undefined; splice(start: number, deleteCount: number, ...items: T[]): void; trimStart(count: number): void; shiftElements(start: number, count: number, offset: number): void; private _getCyclicIndex; }