import { type RenderBuffer, type RenderDevice } from "./RenderDevice";
import { type VertexAttributeSemantic, VertexFormat } from "./VertexFormat";
export declare class VertexBuffer {
    readonly format: VertexFormat;
    readonly vertexCount: number;
    readonly data: ArrayBuffer;
    readonly floats: Float32Array;
    private gpuBuffer;
    private dirtyStart;
    private dirtyEnd;
    private disposed;
    constructor(format: VertexFormat, vertexCount: number);
    get byteLength(): number;
    get uploadedBuffer(): RenderBuffer | null;
    setAttribute(vertexIndex: number, semantic: VertexAttributeSemantic, values: readonly number[]): void;
    getAttribute(vertexIndex: number, semantic: VertexAttributeSemantic): readonly number[];
    upload(device: RenderDevice): RenderBuffer;
    getDirtyRange(): {
        readonly start: number;
        readonly end: number;
    } | null;
    dispose(): void;
    private assertVertexIndex;
    private assertAlive;
    private markDirty;
    private isDirty;
    private clearDirty;
}
//# sourceMappingURL=VertexBuffer.d.ts.map