import * as THREE from 'three'; import MeshGemMaterial from "../materials/MeshGemMaterial/MeshGemMaterial"; import { ViewerConfig } from '../objects/viewer-config.object'; import { EnvironmentHelper } from "../materials/environment"; import { WidgetConfig } from '../objects/widget-config.object'; export interface IGem { name: string; getUniforms(jewelry: THREE.Mesh, loadResorceTasks: Promise[]): Promise<{ resources: (THREE.Texture | string)[]; uniforms: { [uniform: string]: THREE.IUniform; }; }>; } export declare function getMaterialForGem(renderer: THREE.WebGLRenderer, gem: IGem, jewelryMesh: THREE.Mesh, config: ViewerConfig | WidgetConfig, environmentHelper: EnvironmentHelper, useSimpleShader?: boolean): Promise;