import { IVertexBuffer } from '../base/IVertexBuffer';
import { IUnloadable } from '../managers/UnloadManager';
import { BufferPool } from './BufferPool';
import { ContextWebGL } from './ContextWebGL';
type TTypedArray = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Float32Array;
export declare class VertexBufferWebGL implements IVertexBuffer, IUnloadable {
    private _context;
    private static _pool;
    static get pool(): BufferPool<VertexBufferWebGL>;
    static create(context: ContextWebGL, numVertices: number, dataPerVertex: number): VertexBufferWebGL;
    private _gl;
    private _numVertices;
    private _dataPerVertex;
    private _buffer;
    private _lastMemoryUsage;
    instanced: boolean;
    dynamic: boolean;
    lastUsedTime: number;
    canUnload: boolean;
    constructor(_context: ContextWebGL, numVertices: number, dataPerVertex: number);
    initAsDynamic(numVertices?: number): void;
    uploadFromArray(array: TTypedArray, startVertex?: number, _numVertices?: number): void;
    uploadFromByteArray(data: TTypedArray, startVertex: number, _numVertices: number): void;
    get numVertices(): number;
    get dataPerVertex(): number;
    get glBuffer(): WebGLBuffer;
    dispose(): void;
    apply(_gl: WebGLRenderingContext, numVertices: number, dataPerVertex: number): void;
    unload(): void;
}
export {};
//# sourceMappingURL=VertexBufferWebGL.d.ts.map