import { GraphicsResource } from "../asset/GraphicsResource";
import { Engine } from "../Engine";
import { RenderBufferDepthFormat } from "./enums/RenderBufferDepthFormat";
import { TextureFormat } from "./enums/TextureFormat";
import { Texture } from "./Texture";
/**
 * The render target used for off-screen rendering.
 */
export declare class RenderTarget extends GraphicsResource {
    private _autoGenerateMipmaps;
    private _width;
    private _height;
    private _colorTextures;
    private _depthTexture;
    private _memorySize;
    /**
     * Whether to automatically generate multi-level textures.
     */
    get autoGenerateMipmaps(): boolean;
    set autoGenerateMipmaps(value: boolean);
    /**
     * Render target width.
     */
    get width(): number;
    /**
     * Render target height.
     */
    get height(): number;
    /**
     * Render color textures.
     */
    get colorTextures(): ReadonlyArray<Texture>;
    /**
     * Render color texture count.
     */
    get colorTextureCount(): number;
    /**
     * Depth texture.
     */
    get depthTexture(): Texture | null;
    /**
     * Anti-aliasing level.
     * @remarks If the anti-aliasing level set is greater than the maximum level supported by the hardware, the maximum level of the hardware will be used.
     */
    get antiAliasing(): number;
    /**
     * Create a render target through color texture and depth format.
     * @param engine - Define the engine to use for this off-screen rendering
     * @param width - Render target width
     * @param height - Render target height
     * @param colorTexture - Render color texture
     * @param depthFormat - Depth format. default TextureFormat.Depth, engine will automatically select the supported precision
     * @param antiAliasing - Anti-aliasing level, default is 1
     */
    constructor(engine: Engine, width: number, height: number, colorTexture: Texture, depthFormat?: TextureFormat | null | RenderBufferDepthFormat, antiAliasing?: number);
    /**
     * Create a render target through color texture and depth format.
     * @remarks If the color texture is not transmitted, only the depth texture is generated.
     * @param engine - Define the engine to use for this off-screen rendering
     * @param width - Render target width
     * @param height - Render target height
     * @param colorTexture - Render color texture
     * @param depthTexture - Render depth texture
     * @param antiAliasing - Anti-aliasing level, default is 1
     */
    constructor(engine: Engine, width: number, height: number, colorTexture: Texture | null, depthTexture: Texture, antiAliasing?: number);
    /**
     * Create a render target with color texture array and depth format.
     * @param engine - Define the engine to use for this off-screen rendering
     * @param width - Render target width
     * @param height - Render target height
     * @param colorTextures - Render color texture array
     * @param depthFormat - Depth format. default TextureFormat.Depth,engine will automatically select the supported precision
     * @param antiAliasing - Anti-aliasing level, default is 1
     */
    constructor(engine: Engine, width: number, height: number, colorTextures: Texture[], depthFormat?: TextureFormat | null | RenderBufferDepthFormat, antiAliasing?: number);
    /**
     * Create a render target with color texture array and depth texture.
     * @param engine - Define the engine to use for this off-screen rendering
     * @param width - Render target width
     * @param height - Render target height
     * @param colorTextures - Render color texture array
     * @param depthTexture - Depth texture
     * @param antiAliasing - Anti-aliasing level, default is 1
     */
    constructor(engine: Engine, width: number, height: number, colorTextures: Texture[], depthTexture: Texture, antiAliasing?: number);
    /**
     * Get the render color texture by index.
     * @param index - Render color texture index
     */
    getColorTexture(index?: number): Texture | null;
    /**
     * Generate the mipmap of each attachment texture of the renderTarget according to the configuration.
     */
    generateMipmaps(): void;
}
