import type { Bounds } from '../data-table';
import { BlockMaskBuffer } from '../voxel/block-mask-buffer';
/**
 * Extract a collision mesh from voxel data and encode it as a GLB file.
 *
 * Runs marching cubes on the voxel surface, then a lossless coplanar-merge
 * pass that fuses the redundant axis-aligned triangles inside each
 * voxel-face plane into greedy-style quads while leaving the corner-cutting
 * bevel triangles untouched. The output surface is identical to the raw MC
 * surface but typically has 1-2 orders of magnitude fewer triangles.
 *
 * @param blockBuffer - Voxel block data after filtering
 * @param gridBounds - Grid bounds aligned to block boundaries
 * @param voxelResolution - Size of each voxel in world units
 * @returns GLB bytes, or null if no triangles were generated
 */
declare const buildCollisionMesh: (blockBuffer: BlockMaskBuffer, gridBounds: Bounds, voxelResolution: number) => Uint8Array | null;
export { buildCollisionMesh };
