import type { FboOpts, IFbo } from "./api/buffers.js";
/**
 * WebGL framebuffer wrapper w/ automatic detection & support for multiple
 * render targets (color attachments) and optional depth buffer. Multiple
 * targets are only supported if the `WEBGL_draw_buffers` extension is
 * available. The max. number of attachments can be obtained via the
 * `maxAttachments` property of the FBO instance.
 *
 * ```ts
 * import { defFBO } from "@thi.ng/webgl";
 *
 * // create FBO w/ 2 render targets
 * fbo = defFBO(gl, { tex: [tex1, tex2] });
 * ```
 *
 * https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_draw_buffers
 */
export declare class FBO implements IFbo {
    gl: WebGLRenderingContext;
    fbo: WebGLFramebuffer;
    ext?: WEBGL_draw_buffers;
    maxAttachments: number;
    constructor(gl: WebGLRenderingContext, opts?: Partial<FboOpts>);
    bind(): boolean;
    unbind(): boolean;
    release(): boolean;
    configure(opts: Partial<FboOpts>, unbind?: boolean): boolean;
    validate(): boolean;
}
export declare const defFBO: (gl: WebGLRenderingContext, opts?: Partial<FboOpts>) => FBO;
//# sourceMappingURL=fbo.d.ts.map