import { WebGLRenderer, Scene, Camera, Mesh } from 'three'; import { NEEDLE_ext_progressive_mesh } from '../extension.model.js'; /** * This interface is used to define a plugin for the progressive extension. It can be registered using the `registerPlugin` function. */ export interface NEEDLE_progressive_plugin { /** Called before the LOD level will be requested/updated for a object */ onBeforeUpdateLOD?(renderer: WebGLRenderer, scene: Scene, camera: Camera, object: Mesh): void; /** Called after the LOD level has been requested */ onAfterUpdatedLOD?(renderer: WebGLRenderer, scene: Scene, camera: Camera, object: Mesh, level: { mesh_lod: number; texture_lod: number; }): void; /** Called when a new mesh is registered */ onRegisteredNewMesh?(mesh: Mesh, ext: NEEDLE_ext_progressive_mesh): void; /** Called before the LOD mesh is fetched */ onBeforeGetLODMesh?(mesh: Mesh, level: number): void; } /** * List of registered plugins for the progressive extension. Please use the `registerPlugin` function to add a plugin. * @internal */ export declare const plugins: NEEDLE_progressive_plugin[];