import type { Maybe, NumericArray } from "@thi.ng/api";
import type { StridedVec } from "@thi.ng/vectors";
import { AVecList } from "./alist.js";
import type { VecFactory } from "./api.js";
export interface Cell<T extends StridedVec> {
    prev: CellVec<T> | null;
    next: CellVec<T> | null;
}
export type CellVec<T extends StridedVec> = T & Cell<T>;
export declare class VecLinkedList<T extends StridedVec> extends AVecList<T> {
    head: CellVec<T> | null;
    tail: CellVec<T> | null;
    readonly closed: boolean;
    protected _length: number;
    /**
     *
     * @param closed -
     * @param buffer -
     * @param capacity -
     * @param size -
     * @param factory -
     * @param cstride -
     * @param estride -
     * @param start -
     */
    constructor(closed: boolean, buffer: NumericArray, capacity: number, size: number, start?: number, cstride?: number, estride?: number, factory?: VecFactory);
    [Symbol.iterator](): Generator<CellVec<T>, void, unknown>;
    get length(): number;
    add(): T;
    insert(i: number): Maybe<T>;
    remove(vec: T): boolean;
    has(value: T): boolean;
    nth(n: number): Maybe<T>;
}
//# sourceMappingURL=linked-list.d.ts.map