import type { Optional } from "../../../libs/optional/mod.ts";
import type { Struct } from "../../../libs/struct/mod.ts";
import { Unknown } from "@hazae41/binary";
import { Cursor } from "@hazae41/cursor";
export declare class Vector<T extends {
    [index: number]: Optional<readonly Struct[]>;
}> {
    readonly bytes: Unknown<ArrayBuffer>;
    readonly value: T;
    constructor(bytes: Unknown<ArrayBuffer>, value: T);
    sizeOrThrow(): number;
    writeOrThrow(cursor: Cursor<ArrayBuffer>): void;
    cloneOrThrow(): Vector<T>;
}
export declare namespace Vector {
    function initOrThrow<T extends {
        [index: number]: Optional<readonly Struct[]>;
    }>(indexed: T): Vector<T>;
    function readOrThrow(cursor: Cursor<ArrayBuffer>): Vector<{
        [index: number]: Unknown<ArrayBuffer>[];
    }>;
}
