import type { ParameterizedMessage, Payload, PayloadHandler } from 'wtd-core'; import type { MaterialCloneInstructionsType } from './MaterialUtils.js'; import { Material } from 'three'; export type MaterialsPayloadAdditions = Payload & { message: MaterialsPayloadMessageAdditions; }; export type MaterialsPayloadMessageAdditions = ParameterizedMessage & { materials: Map; materialsJson: Map; multiMaterialNames: Map; cloneInstructions: MaterialCloneInstructionsType[]; }; export declare class MaterialsPayload implements MaterialsPayloadAdditions { $type: string; message: MaterialsPayloadMessageAdditions; /** * Set an object containing named materials. * @param {Map} materials */ setMaterials(materials: Map): void; /** * Removes all textures and null values from all materials */ cleanMaterials(): void; private cleanMaterial; /** * Tell whether a multi-material was defined * @return {boolean} */ hasMultiMaterial(): boolean; /** * Returns a single material if it is defined or null. * @return {Material|null} */ getSingleMaterial(): Material | undefined; /** * Adds contained material or multi-material the provided materials object or it clones and adds new materials according clone instructions. * * @param {Map} materials * @param {boolean} log * * @return {Material|Material[]|undefined} */ processMaterialTransport(materials: Map, log?: boolean): Material | Material[] | undefined; } export declare class MaterialsPayloadHandler implements PayloadHandler { pack(payload: Payload, transferables: Transferable[], cloneBuffers: boolean): Transferable[]; unpack(transportObject: Payload, cloneBuffers: boolean): MaterialsPayload & Payload; } //# sourceMappingURL=MaterialsPayload.d.ts.map