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"; /** * [Proposed Specification](https://github.com/KhronosGroup/glTF/pull/1825) * !!! Experimental Extension Subject to Changes !!! */ export declare class KHR_materials_diffuse_transmission implements IGLTFExporterExtensionV2 { /** Name of this extension */ readonly name = "KHR_materials_diffuse_transmission"; /** 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; /** * 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_diffuse_transmission glTF serializer extension with the {@link GLTFExporter}. * Safe to call multiple times; only the first call has an effect. */ export declare function RegisterKHR_materials_diffuse_transmission(): void;