import { BufferGeometry, IndirectStorageBufferAttribute, StorageBufferAttribute } from 'three/webgpu'; import type { TypedArray } from 'three/webgpu'; type TypedStorageBufferAttribute = StorageBufferAttribute & { array: TArray; itemSize: TItemSize; }; type TypedIndirectStorageBufferAttribute = IndirectStorageBufferAttribute & { array: TArray; itemSize: TItemSize; }; /** Construct a storage attribute while retaining its exact CPU array and item-size contract. */ declare function createTypedStorageBufferAttribute(array: TArray, itemSize: TItemSize): TypedStorageBufferAttribute; /** Construct an indirect attribute while retaining its exact CPU array and command stride. */ declare function createTypedIndirectStorageBufferAttribute(array: TArray, itemSize: TItemSize): TypedIndirectStorageBufferAttribute; /** Set the r185 WebGPU-only instance count missing from the public BufferGeometry declaration. */ declare function setBufferGeometryInstanceCount(geometry: BufferGeometry, count: number): void; export { createTypedIndirectStorageBufferAttribute, createTypedStorageBufferAttribute, setBufferGeometryInstanceCount, }; export type { TypedIndirectStorageBufferAttribute, TypedStorageBufferAttribute, };