import * as THREE from "three"; import { ViewerConfig } from "../objects/viewer-config.object"; import { IGem } from '../gems/IGem'; import { EnvironmentHelper } from "../materials/environment"; import { WidgetConfig } from "../objects/widget-config.object"; import { MaterialParams } from "../dto/materials.dto"; export declare const GEM_NAMES_LUT: Record; export declare function findChild(sceneNode: THREE.Object3D, comparisonFunc: (c: THREE.Object3D) => boolean): THREE.Object3D | undefined; export declare function applyMaterialConfig(mesh: THREE.Mesh, materialConfig: MaterialParams, environmentHelper: EnvironmentHelper | undefined): Promise; export declare function applyMaterialConfigSimpleShader(mesh: THREE.Mesh, materialConfig: MaterialParams): void; export declare function groupGemsBySizes(meshGroup: THREE.Group, config: ViewerConfig | WidgetConfig, environmentHelper: EnvironmentHelper): Record, THREE.Material | THREE.Material[], THREE.Object3DEventMap>[][]>>; export declare function replaceIndividualGemsWithInstancedMeshes(gemsBySizeLUT: Record>>, renderer: THREE.WebGLRenderer, config: ViewerConfig | WidgetConfig, gemsMap: Record, environmentHelper: EnvironmentHelper, useSimpleShader: boolean): Promise;