export declare class Uniform { type: string; size: number; location: WebGLUniformLocation; value: Float32Array | Int32Array | Array | number | boolean; constructor(type: string, size: number, location: WebGLUniformLocation, value: Float32Array | Int32Array | Array | number | boolean); } export declare class UniformMap { protected uniformMap: { [key: string]: Uniform; }; constructor(); add(key: string, attribute: Uniform): void; get(key: string): Uniform; remove(key: string): void; readonly keys: string[]; } export declare class UniformAccessObject { private _program; protected _gl: WebGL2RenderingContext; data: any; constructor(gl?: WebGL2RenderingContext, program?: WebGLProgram); gl: WebGL2RenderingContext; program: WebGLProgram; } export declare function extract(gl: WebGL2RenderingContext, program: WebGLProgram): UniformMap; export declare function generateUniformAccessObject(gl: WebGL2RenderingContext, uniformData: UniformMap, program: WebGLProgram): UniformAccessObject;