import { ToneMapping } from "../../../constants.js"; import { Light } from "../../../lights/Light.js"; import { Material } from "../../../materials/Material.js"; import NodeMaterial from "../../../materials/nodes/NodeMaterial.js"; import Node from "../../../nodes/core/Node.js"; import { ColorSpaceMethod } from "../../../nodes/display/ColorSpaceNode.js"; import AnalyticLightNode from "../../../nodes/lighting/AnalyticLightNode.js"; import { NodeRepresentation, ShaderNodeObject } from "../../../nodes/tsl/TSLCore.js"; declare class NodeLibrary { lightNodes: WeakMap<{ new(): Light; }, { new(light: Light): AnalyticLightNode; }>; materialNodes: Map; toneMappingNodes: Map< ToneMapping, (color: NodeRepresentation, exposure: NodeRepresentation) => ShaderNodeObject >; colorSpaceNodes: Map ShaderNodeObject>; constructor(); fromMaterial(material: Material): Material | null; addColorSpace( colorSpaceNode: (color: NodeRepresentation) => ShaderNodeObject, colorSpace: ColorSpaceMethod, ): void; getColorSpaceFunction(colorSpace: ColorSpaceMethod): ((color: NodeRepresentation) => ShaderNodeObject) | null; addToneMapping( toneMappingNode: (color: NodeRepresentation, exposure: NodeRepresentation) => ShaderNodeObject, toneMapping: ToneMapping, ): void; getToneMappingFunction( toneMapping: ToneMapping, ): ((color: NodeRepresentation, exposure: NodeRepresentation) => ShaderNodeObject) | null; getMaterialNodeClass(materialType: string): (new() => NodeMaterial) | null; addMaterial(materialNodeClass: { new(): NodeMaterial; }, materialClass: { new(): Material; }): void; getLightNodeClass(light: Light): (new(light: Light) => AnalyticLightNode) | null; addLight(lightNodeClass: { new(light: TLight): AnalyticLightNode; }, lightClass: { new(): TLight; }): void; addType(nodeClass: TNodeClass, type: TType, library: Map): void; addClass( nodeClass: TNodeClass, baseClass: TBaseClass, library: WeakMap, ): void; } export default NodeLibrary;