import Traversable, { TraversableProps } from './Traversable'; import Renderable from './Renderable'; import { UniformList } from './Material'; import { UniformValue } from './UniformValue'; declare type UniformProviderUpdateFunction = (previousValue: UniformValue) => UniformValue | void; interface UniformProviderUpdateList { [key: string]: UniformProviderUpdateFunction; } export interface UniformProviderProps extends TraversableProps { uniforms: UniformList; } export default class UniformProvider extends Traversable { readonly isUniformProvider = true; uniforms: UniformList; constructor(props: UniformProviderProps); setUniform(key: string, value: UniformValue): void; setUniforms(list: UniformList): void; updateUniform(key: string, func: UniformProviderUpdateFunction): void; updateUniforms(list: UniformProviderUpdateList): void; applyUniformsToNode(node: Renderable): void; } export {};