export declare class OverwritingArray<T> {
    readonly capacity: number;
    private _array;
    private readonly _headConstraint;
    private readonly _lengthConstraint;
    private _head;
    private _length;
    private get head();
    private set head(value);
    get length(): number;
    set length(value: number);
    private get start();
    constructor(capacity: number, items?: T[]);
    add(item: T): void;
    push(...items: T[]): number;
    pop(): T | undefined;
    shift(): T | undefined;
    at(index: number): T | undefined;
    values(): IterableIterator<T>;
    keys(): IterableIterator<number>;
    entries(): IterableIterator<[number, T]>;
    [Symbol.iterator](): IterableIterator<T>;
    private pushOne;
    private index;
}
