import { BufferGeometry } from 'three/webgpu';
import { VOBufferPool } from './VOBufferPool.js';
import type { VertexObjectDescriptor } from './VertexObjectDescriptor.js';
import type { BufferLike, VertexAttributeUsageType, VertexObjectDescription } from './types.js';
type TouchBuffersType = {
    [Type in VertexAttributeUsageType]?: boolean;
};
export declare class VOBufferGeometry extends BufferGeometry {
    #private;
    readonly pool: VOBufferPool;
    readonly buffers: Map<string, BufferLike>;
    readonly bufferSerials: Map<string, number>;
    constructor(source: VOBufferPool | VertexObjectDescriptor | VertexObjectDescription, capacity: number);
    dispose(): void;
    touchAttributes(...attrNames: string[]): void;
    touchBuffers(bufferTypes: TouchBuffersType): void;
    touch(...args: Array<string | TouchBuffersType>): void;
    update(): void;
}
export {};
//# sourceMappingURL=VOBufferGeometry.d.ts.map