export class FrameBuffer {
    /**
     *
     * @param {string} id
     * @constructor
     */
    constructor(id: string);
    /**
     * is expected to be bound during initialization
     * @type {WebGLRenderTarget}
     */
    renderTarget: WebGLRenderTarget;
    /**
     * Number of users of the frame buffer
     * @type {number}
     */
    referenceCount: number;
    /**
     * Dependency frame buffers
     * @type {string[]}
     */
    dependencies: string[];
    /**
     * Size of the frame buffer in pixels
     * @type {Vector2}
     */
    size: Vector2;
    /**
     *
     * @type {string}
     */
    id: string;
    /**
     *
     * @returns {WebGLRenderTarget|WebGLMultisampleRenderTarget}
     */
    getRenderTarget(): WebGLRenderTarget | WebGLMultisampleRenderTarget;
    /**
     * Gets called once before frame buffer is used for the first time
     * @param {WebGLRenderer} renderer
     */
    initialize(renderer: WebGLRenderer): void;
    /**
     * Gets called after frame buffer is no longer needed. Frame buffer becomes unusable afterwards
     * @param {WebGLRenderer} renderer
     */
    finalize(renderer: WebGLRenderer): void;
    /**
     * This method is used to populate FrameBuffer with data. Typically this is done every frame.
     * @param {WebGLRenderer} renderer
     * @param {Camera} camera
     * @param {Scene} scene
     * @param {FrameBuffer[]} dependencies
     */
    render(renderer: WebGLRenderer, camera: Camera, scene: Scene, dependencies: FrameBuffer[]): void;
    /**
     *
     * @param {number} x width
     * @param {number} y height
     */
    setSize(x: number, y: number): void;
}
import { WebGLRenderTarget } from "three";
import Vector2 from "../../../../core/geom/Vector2.js";
//# sourceMappingURL=FrameBuffer.d.ts.map