import type { Encoding } from "./types.js";
export interface BcsWriterOptions {
    initialSize?: number;
    maxSize?: number;
    allocateSize?: number;
}
export declare class BcsWriter {
    private dataView;
    private bytePosition;
    private size;
    private maxSize;
    private allocateSize;
    constructor({ initialSize, maxSize, allocateSize, }?: BcsWriterOptions);
    private ensureSizeOrGrow;
    shift(bytes: number): this;
    write8(value: number | bigint): this;
    writeBytes(bytes: Uint8Array): this;
    write16(value: number | bigint): this;
    write32(value: number | bigint): this;
    write64(value: number | bigint): this;
    write128(value: number | bigint): this;
    write256(value: number | bigint): this;
    writeULEB(value: number): this;
    writeVec(vector: any[], cb: (writer: BcsWriter, el: any, i: number, len: number) => void): this;
    [Symbol.iterator](): Iterator<number, Iterable<number>>;
    toBytes(): Uint8Array<ArrayBuffer>;
    toString(encoding: Encoding): string;
}
