/**
 * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { Texture, TextureFilter } from './texture';
import { Framebuffer } from './framebuffer';
import { WebGLResources } from './resources';
import { GLRenderingContext } from './compat';
export interface RenderTarget {
    readonly id: number;
    readonly texture: Texture;
    readonly framebuffer: Framebuffer;
    getWidth: () => number;
    getHeight: () => number;
    /** binds framebuffer */
    bind: () => void;
    setSize: (width: number, height: number) => void;
    reset: () => void;
    destroy: () => void;
}
export declare function createRenderTarget(gl: GLRenderingContext, resources: WebGLResources, _width: number, _height: number, depth?: boolean, type?: 'uint8' | 'float32' | 'fp16', filter?: TextureFilter): RenderTarget;
export declare function createNullRenderTarget(gl: GLRenderingContext): RenderTarget;
