import * as THREE from "three"; import type { PBMClipperParameter } from "../materials/pbmMaterial"; export interface SplatData { numPoints: number; positions: Float32Array; colors: Uint8Array; scales: Float32Array; rotations: Float32Array; sh1?: Float32Array; sh2?: Float32Array; sh3?: Float32Array; shDegree?: number; } export declare class PBMGaussianSplattingObject extends THREE.Points { static RowLength: number; transformChanged: boolean; selectedChanged: boolean; transferDetached: boolean; numPoints: number; maxSHDegree: number; usedSHDegree: number; initAnimationEnabled: boolean; gsViewLayerKey: string; gsClippers: readonly PBMClipperParameter[]; private _selected; private _boundingBox; lastMatrixWorld: THREE.Matrix4 | null; get positions(): Float32Array; get rotations(): Float32Array; get scales(): Float32Array; get colors(): Uint8Array; get selection(): Uint8Array; get sh1(): Float32Array | undefined; get sh2(): Float32Array | undefined; get sh3(): Float32Array | undefined; constructor(splatData?: SplatData); serialize(): Uint8Array; reattach(positions: ArrayBufferLike, rotations: ArrayBufferLike, scales: ArrayBufferLike, colors: ArrayBufferLike, selection: ArrayBufferLike): void; get selected(): boolean; set selected(selected: boolean); get boundingBox(): THREE.Box3; dispose(): void; raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void; }