import type { SplatMesh } from "@sparkjsdev/spark"; import { Behaviour } from "./Component.js"; /** * The {@link GaussianSplat} component loads and displays 3D Gaussian Splat models. * Supports `.ply`, `.spz`, and `.splat` file formats via SparkJS. * * **Properties:** * - `url` - URL to a gaussian splat file * - `opacity` - Global opacity multiplier (0-1) * * @example Load a splat file * ```ts * const splat = myObject.addComponent(GaussianSplat); * splat.url = "https://example.com/scene.spz"; * await splat.initialized; * ``` * * @summary Displays 3D Gaussian Splat models * @category Rendering * @group Components */ export declare class GaussianSplat extends Behaviour { /** URL to a gaussian splat file (.ply, .spz, .splat). Assigning a new value at runtime reloads the splat. */ set url(value: string | undefined); get url(): string | undefined; private _url?; /** Global opacity multiplier (0-1) */ set opacity(value: number); get opacity(): number; private _opacity; /** Whether splats support raycasting */ set raycastable(value: boolean); get raycastable(): boolean; private _raycastable; /** The underlying SparkJS SplatMesh instance. Available after loading completes. */ get splatMesh(): SplatMesh | null; /** Whether the splat model has finished loading */ get isLoaded(): boolean; /** Promise that resolves when the splat model has been loaded and initialized */ get initialized(): Promise; private _splatMesh; private _initialized; private _loading; awake(): void; onEnable(): void; onDisable(): void; onDestroy(): void; /** Load a gaussian splat from a URL. Replaces any previously loaded splat. */ load(url: string): Promise; }