import { TgdTypeArrayOrBuffer } from "../types";
export type TgdBufferOptionTarget = "ARRAY_BUFFER" | "ELEMENT_ARRAY_BUFFER" | "COPY_READ_BUFFER" | "COPY_WRITE_BUFFER" | "TRANSFORM_FEEDBACK_BUFFER" | "UNIFORM_BUFFER" | "PIXEL_PACK_BUFFER" | "PIXEL_UNPACK_BUFFER";
export type TgdBufferOptionUsage = "STATIC_DRAW" | "DYNAMIC_DRAW" | "STREAM_DRAW" | "STATIC_READ" | "DYNAMIC_READ" | "STREAM_READ" | "STATIC_COPY" | "DYNAMIC_COPY" | "STREAM_COPY";
export interface TgdBufferOptions {
    data?: TgdTypeArrayOrBuffer;
    target: TgdBufferOptionTarget;
    usage: TgdBufferOptionUsage;
}
export declare class TgdBuffer {
    readonly gl: WebGL2RenderingContext;
    readonly buffer: WebGLBuffer;
    private _target;
    private _usage;
    constructor(gl: WebGL2RenderingContext, options?: Partial<TgdBufferOptions>);
    get target(): TgdBufferOptionTarget;
    bind(target?: TgdBufferOptionTarget): void;
    bufferData(options: Partial<TgdBufferOptions> & {
        data: TgdTypeArrayOrBuffer;
    }): void;
    delete(): void;
}
//# sourceMappingURL=buffer.d.ts.map