import * as THREE from 'three'; export interface ClipSdf { position: THREE.Vector3; quaternion: THREE.Quaternion; updateMatrixWorld: (force?: boolean) => void; removeFromParent: () => void; } export interface ClipEdit { sdfs: ClipSdf[] | null; add: (sdf: ClipSdf) => void; } /** Spark's PLANE sdf is an Object3D facing local +Z; a THREE.Plane is a normal and an offset. */ export declare function sdfTransformForPlane(plane: THREE.Plane): { position: any; quaternion: any; }; /** * Points one cutting sdf at each clipping plane. Spark unions the sdfs of an edit, so a splat * is dropped when it is behind any plane — the same half-space three keeps for everything else. */ export declare function syncClipSdfs(edit: ClipEdit, planes: readonly THREE.Plane[], createSdf: () => ClipSdf): void; //# sourceMappingURL=splatClipping.d.ts.map