import * as THREE from 'three'; type UniformValue = THREE.CubeTexture | THREE.Texture | Int32Array | Float32Array | THREE.Matrix4 | THREE.Matrix3 | THREE.Quaternion | THREE.Vector4 | THREE.Vector3 | THREE.Vector2 | THREE.Color | number | boolean | Array | null; type UniformProps = { [name: string]: UniformValue; }; type ShaderMaterialInstance = THREE.ShaderMaterial & TProps; type ShaderMaterialParameters = THREE.ShaderMaterialParameters & Partial; type ShaderMaterial = (new (parameters?: ShaderMaterialParameters) => ShaderMaterialInstance) & { key: string; }; export declare function shaderMaterial(uniforms: TProps, vertexShader: string, fragmentShader: string, onInit?: (material: ShaderMaterialInstance) => void): ShaderMaterial; export {};