import { Program } from "./Program"; import { BufferManager } from "./BufferManager"; import { BufferGeometry } from "./BufferGeometry"; import { Object3D } from "./Object3D"; import { RenderSide } from "./Constants"; import { ProgramManager } from "./ProgramManager"; import { Geometry } from "./Geometry"; declare class RenderableElement extends Object3D { shader: any; glProgram: WebGLProgram; program: Program; gl: WebGLRenderingContext; vertexNum: number; geometry: Geometry; bufferGeometry: BufferGeometry; bufferManager: BufferManager; programManager: ProgramManager; side: RenderSide; transparent: boolean; hasIndex: boolean; isRenderableElement: boolean; type: string; constructor(shader: any, geometry: Geometry | BufferGeometry); getVertexNum(): number; getProgram(): WebGLProgram; update(gl: any, newShader?: any): void; updateGeometry(gl: any): void; updateBuffer(gl: any): void; updateUniforms(gl: any): void; } export { RenderableElement };