import { IVao } from '../base/IVao';
import { ContextWebGL } from './ContextWebGL';
import { IndexBufferWebGL } from './IndexBufferWebGL';
type TWebGLVao = WebGLVertexArrayObjectOES | WebGLVertexArrayObject;
export declare class VaoContextWebGL {
    private _context;
    static isSupported(gl: WebGLRenderingContext | WebGL2RenderingContext): boolean;
    private readonly _createVertexArray;
    private readonly _deleteVertexArray;
    private readonly _bindVertexArray;
    _lastBoundedVao: VaoWebGL;
    _isRequireUnbound: boolean;
    constructor(_context: ContextWebGL);
    createVertexArray(): TWebGLVao;
    unbindVertexArrays(): void;
    bindVertexArray(v: VaoWebGL): void;
    deleteVertexArray(v: VaoWebGL): void;
}
export declare class VaoWebGL implements IVao {
    private _context;
    _vao: TWebGLVao;
    _indexBuffer: IndexBufferWebGL;
    constructor(_context: ContextWebGL);
    attachIndexBuffer(buffer: IndexBufferWebGL): void;
    bind(): void;
    unbind(force?: boolean): void;
    dispose(): void;
}
export {};
//# sourceMappingURL=VaoWebGL.d.ts.map