import { ExtensionType } from '../../../extensions/Extensions';
import type { RgbaArray } from '../../../color/Color';
import type { RenderSurface } from '../gpu/renderTarget/GpuRenderTargetSystem';
import type { System } from '../shared/system/System';
import type { WebGLRenderer } from './WebGLRenderer';
export interface GlBackBufferOptions {
    useBackBuffer?: boolean;
    antialias?: boolean;
}
export declare class GlBackBufferSystem implements System {
    /** @ignore */
    static extension: {
        readonly type: readonly [ExtensionType.WebGLSystem];
        readonly name: "backBuffer";
    };
    static defaultOptions: GlBackBufferOptions;
    useBackBuffer: boolean;
    private _backBufferTexture;
    private readonly _renderer;
    private _targetTexture;
    private _useBackBufferThisRender;
    private _antialias;
    constructor(renderer: WebGLRenderer);
    init(options?: GlBackBufferOptions): void;
    protected renderStart({ target, clear, clearColor }: {
        target: RenderSurface;
        clear: boolean;
        clearColor: RgbaArray;
    }): void;
    protected renderEnd(): void;
    private _presentBackBuffer;
    private _getBackBufferTexture;
    destroy(): void;
}
