import type Program from './program';
import type VertexBuffer from '../gl/vertex_buffer';
import type IndexBuffer from '../gl/index_buffer';
import type Context from '../gl/context';
declare class VertexArrayObject {
    context: Context;
    boundProgram: Program<any> | undefined | null;
    boundLayoutVertexBuffer: VertexBuffer | undefined | null;
    boundPaintVertexBuffers: Array<VertexBuffer>;
    boundIndexBuffer: IndexBuffer | undefined | null;
    boundVertexOffset: number | undefined | null;
    boundDynamicVertexBuffer: VertexBuffer | undefined | null;
    boundDynamicVertexBuffer2: VertexBuffer | undefined | null;
    vao: any;
    constructor();
    bind(context: Context, program: Program<any>, layoutVertexBuffer: VertexBuffer, paintVertexBuffers: Array<VertexBuffer>, indexBuffer?: IndexBuffer | null, vertexOffset?: number | null, dynamicVertexBuffer?: VertexBuffer | null, dynamicVertexBuffer2?: VertexBuffer | null): void;
    freshBind(program: Program<any>, layoutVertexBuffer: VertexBuffer, paintVertexBuffers: Array<VertexBuffer>, indexBuffer?: IndexBuffer | null, vertexOffset?: number | null, dynamicVertexBuffer?: VertexBuffer | null, dynamicVertexBuffer2?: VertexBuffer | null): void;
    destroy(): void;
}
export default VertexArrayObject;
//# sourceMappingURL=vertex_array_object.d.ts.map