import { Material } from 'three' ; import { Uniforms , Varyings , AllMaterialProps } from './internal' ; export interface MaterialConstructor { new ( ... args ) : GenericMaterial ; } export type ComponentMaterialProps = AllMaterialProps & { varyings ? : Varyings ; uniforms ? : Uniforms ; from ? : MaterialConstructor ; } ; export interface GenericMaterial extends Material { [ key ] : any ; } export type ComponentMaterial = ( props : ComponentMaterialProps ) => GenericMaterial ;