export declare class GLBuffer { private gl; /** * Type of the buffer * @member {gl.ARRAY_BUFFER|gl.ELEMENT_ARRAY_BUFFER} */ private type; private arrayBuffers; /** * The draw type of the buffer * @member {gl.STATIC_DRAW|gl.DYNAMIC_DRAW|gl.STREAM_DRAW} */ private drawType; private buffer; private _byteLength; constructor(gl: WebGL2RenderingContext, type?: number, data?: ArrayBuffer | ArrayBufferView, drawType?: number); /** * Add Data to the MeshBuffermap that should be uploaded * @param {ArrayBuffer | ArrayBufferView} data */ addData(data: ArrayBuffer | ArrayBufferView): void; /** * Remove data from the MeshBuffermap * @param {ArrayBuffer | ArrayBufferView} data */ removeData(data: ArrayBuffer | ArrayBufferView): void; /** * Uploads the new data to the GPU and all the previous data * @param data {ArrayBuffer|ArrayBufferView} an array of data to upload */ upload(data?: ArrayBuffer | ArrayBufferView): number; bind(): void; unbind(): void; destroy(): void; /** * sum of the ByteLength of all ArrayBuffers stored in this GLBuffer * @returns {number} */ readonly byteLength: number; /** * Length of the ArrayBuffers stored in this MeshBuffermap * @returns {number} */ readonly length: number; static createVertexBuffer(gl: WebGL2RenderingContext, data?: ArrayBuffer | ArrayBufferView, drawType?: number): GLBuffer; static createIndexBuffer(gl: WebGL2RenderingContext, data?: ArrayBuffer | ArrayBufferView, drawType?: number): GLBuffer; static create(gl: WebGL2RenderingContext, type: number, data?: ArrayBuffer | ArrayBufferView, drawType?: number): GLBuffer; }