import { type PlateSurfacePartition, type SlabNode } from '@pascal-app/core'; import { BufferGeometry } from 'three'; export type SplitBucket = { role: string; geometry: BufferGeometry; }; /** * Split a slab buffer by face orientation only — the pre-plate behaviour, kept * verbatim for manual slabs so their two meshes and their paint slots never * change. */ export declare function splitSlabFacesByFacing(geometry: BufferGeometry): { top: BufferGeometry; side: BufferGeometry; }; /** * Split a plate buffer into one bucket per rendered role: a top bucket per * partition cell, `edge` / `riser` per exposure run, and `underside`. Buckets * come back in a stable order (cells in partition order, then the sides) so the * mesh order of a plate is the same on every rebuild. */ export declare function splitPlateFaces(geometry: BufferGeometry, partition: PlateSurfacePartition, slab: Pick): SplitBucket[]; export declare function clipPlateTerrainFill(geometry: BufferGeometry, partition: PlateSurfacePartition): BufferGeometry; //# sourceMappingURL=surface-split.d.ts.map