import { type IMaterial } from "babylonjs-gltf2interface"; import { type IGLTFExporterExtensionV2 } from "../glTFExporterExtension.js"; import { GLTFExporter } from "../glTFExporter.js"; import { type Material } from "@babylonjs/core/Materials/material.js"; import { type BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js"; /** * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_volume/README.md) */ export declare class KHR_materials_volume implements IGLTFExporterExtensionV2 { /** Name of this extension */ readonly name = "KHR_materials_volume"; /** Defines whether this extension is enabled */ enabled: boolean; /** Defines whether this extension is required */ required: boolean; private _exporter; private _wasUsed; constructor(exporter: GLTFExporter); dispose(): void; /** @internal */ get wasUsed(): boolean; /** * After exporting a material, deal with additional textures * @param context GLTF context of the material * @param node exported GLTF node * @param babylonMaterial corresponding babylon material * @returns array of additional textures to export */ postExportMaterialAdditionalTexturesAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise; private _isExtensionEnabled; private _hasTexturesExtension; /** * After exporting a material * @param context GLTF context of the material * @param node exported GLTF node * @param babylonMaterial corresponding babylon material * @returns promise that resolves with the updated node */ postExportMaterialAsync?(context: string, node: IMaterial, babylonMaterial: Material): Promise; } /** * Registers the KHR_materials_volume glTF serializer extension with the {@link GLTFExporter}. * Safe to call multiple times; only the first call has an effect. */ export declare function RegisterKHR_materials_volume(): void;