import { type GaussianSplattingMesh } from "@babylonjs/core/Meshes/GaussianSplatting/gaussianSplattingMesh.js";
/**
 * Options for loading Gaussian Splatting and PLY files
 */
export type SPLATLoadingOptions = {
    /**
     * Defines if buffers should be kept in memory for editing purposes
     */
    keepInRam?: boolean;
    /**
     * Spatial Y Flip for splat position and orientation
     */
    flipY?: boolean;
    /**
     * URL to load fflate from. If null or undefined, will load from unpkg.com
     * (https://unpkg.com/fflate/umd/index.js)
     */
    deflateURL?: string;
    /**
     * Instance of [fflate](https://github.com/101arrowz/fflate) to avoid
     * dynamically loading of the lib to global if needed, useful for bundler users.
     * @example import * as fflate from 'fflate';
     */
    fflate?: unknown;
    /**
     * Disable automatic camera limits from being applied if they exist in the splat file
     */
    disableAutoCameraLimits?: boolean;
    /**
     * Mesh that will be used to load data instead of creating a new one
     */
    gaussianSplattingMesh?: GaussianSplattingMesh;
    /**
     * Generate rotation and scale matrix textures required for voxel-based IBL shadows.
     * Required for IBL shadows to work if keepInRam is false.
     */
    needsRotationScaleTextures?: boolean;
    /**
     * Load SOG files as raw GPU textures and dequantize in the shader.
     * Skips the CPU decode pass and yields much faster load times.
     * Requires WebGL2 / WebGPU. Defaults to false (CPU decode).
     */
    useSogTextures?: boolean;
    /**
     * URL to load the spz WASM ES module from (e.g. the \@adobe/spz package).
     * When provided, the WASM-based SPZ loader is used, which supports extra features
     * such as antialiasing metadata, and vendor-specific extensions such as safe-orbit
     * camera limits.
     * Defaults to the \@adobe/spz unpkg URL when WebAssembly is supported, and undefined otherwise.
     * Set to undefined to force the built-in manual SPZ parser regardless of WebAssembly support.
     * @example Setting the URL directly on the loader options
     * spzLibraryUrl: "https://unpkg.com/\@adobe/spz\@0.2.0/dist/spz.js"
     */
    spzLibraryUrl?: string;
};
