import { PropertyComponent } from "./propertyComponent"; export declare class vertexArrayObjectInfo { vao: WebGLVertexArrayObject; length: number; type: number; isElement: boolean; constructor(vao: WebGLVertexArrayObject, length: number, type: number, isElement: boolean); } export declare class Shader extends PropertyComponent { typeName: string; _name: string; _image: string; _gl: WebGL2RenderingContext; _program: WebGLProgram; _vertex: string; _fragment: string; private _setting; private _listUniformLocations; private _listSetPropertyEvents; isLog: boolean; get name(): string; set name(value: string); get image(): string; set image(value: string); get gl(): WebGLRenderingContext; get program(): WebGLProgram; get vertex(): string; get fragment(): string; constructor(); initComponent(): void; protected setSource(): void; protected setObject(): void; protected update(time?: number): void; getAttribLocation(name: string): number; getUniformLocation(name: string): WebGLUniformLocation; private getGLTypeForTypedArray; createBuffer(attrName: string, data: BufferSource, attrSize: number): WebGLBuffer; createIndexBuffer(indices: BufferSource): WebGLBuffer; createVertexArray(vaoInfo: any): vertexArrayObjectInfo; renderVao(vaoInfo: vertexArrayObjectInfo): void; setInt(name: string, value: number): void; setFloat(name: string, value: number): void; setFloat2v(name: string, value: Float32Array): void; setFloat3v(name: string, value: Float32Array): void; setFloat4v(name: string, value: Float32Array): void; setFloatv(name: string, value: Float32Array): void; setMat4(name: string, value: Float32Array): void; getUniform(name: string): Promise; }