import { Nullable } from "@babylonjs/core/types"; import { Observable } from "@babylonjs/core/Misc/observable"; import { Material } from "@babylonjs/core/Materials/material"; import { TransformNode } from "@babylonjs/core/Meshes/transformNode"; import { Mesh } from "@babylonjs/core/Meshes/mesh"; import { INode, IMaterial } from "../glTFLoaderInterfaces"; import { IGLTFLoaderExtension } from "../glTFLoaderExtension"; import { GLTFLoader } from "../glTFLoader"; import { IProperty } from 'babylonjs-gltf2interface'; /** * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/MSFT_lod) */ export declare class MSFT_lod implements IGLTFLoaderExtension { /** The name of this extension. */ readonly name = "MSFT_lod"; /** Defines whether this extension is enabled. */ enabled: boolean; /** * Maximum number of LODs to load, starting from the lowest LOD. */ maxLODsToLoad: number; /** * Observable raised when all node LODs of one level are loaded. * The event data is the index of the loaded LOD starting from zero. * Dispose the loader to cancel the loading of the next level of LODs. */ onNodeLODsLoadedObservable: Observable; /** * Observable raised when all material LODs of one level are loaded. * The event data is the index of the loaded LOD starting from zero. * Dispose the loader to cancel the loading of the next level of LODs. */ onMaterialLODsLoadedObservable: Observable; private _loader; private _nodeIndexLOD; private _nodeSignalLODs; private _nodePromiseLODs; private _materialIndexLOD; private _materialSignalLODs; private _materialPromiseLODs; /** @hidden */ constructor(loader: GLTFLoader); /** @hidden */ dispose(): void; /** @hidden */ onReady(): void; /** @hidden */ loadNodeAsync(context: string, node: INode, assign: (babylonTransformNode: TransformNode) => void): Nullable>; /** @hidden */ _loadMaterialAsync(context: string, material: IMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void): Nullable>; /** @hidden */ _loadUriAsync(context: string, property: IProperty, uri: string): Nullable>; /** * Gets an array of LOD properties from lowest to highest. */ private _getLODs; private _disposeUnusedMaterials; }