import { WebGLRenderer } from 'three/src/renderers/WebGLRenderer';
import { Texture } from 'three/src/textures/Texture';
import { WebGLRenderTarget, WebGLRenderTargetOptions } from 'three/src/renderers/WebGLRenderTarget';
interface RendererByString {
    [propName: string]: WebGLRenderer;
}
interface TextureByString {
    [propName: string]: Texture;
}
export declare class RenderersController {
    _next_renderer_id: number;
    _next_env_map_id: number;
    _renderers: RendererByString;
    _env_maps: TextureByString;
    private _require_webgl2;
    private _resolves;
    private _webgl2_available;
    constructor();
    setRequireWebGL2(): void;
    webgl2Available(): boolean;
    private _set_webgl2_available;
    renderingContext(canvas: HTMLCanvasElement): WebGLRenderingContext | null;
    private _rendering_context_webgl;
    registerRenderer(renderer: WebGLRenderer): void;
    deregisterRenderer(renderer: WebGLRenderer): void;
    firstRenderer(): WebGLRenderer | null;
    renderers(): WebGLRenderer[];
    private flush_callbacks_with_renderer;
    waitForRenderer(): Promise<WebGLRenderer>;
    renderTarget(width: number, height: number, parameters: WebGLRenderTargetOptions): WebGLRenderTarget;
}
export {};
