import { PolyScene } from '../PolyScene';
import { AbstractRenderer } from '../../viewers/Common';
import { WebGLRenderer } from 'three';
export interface RegisterRendererOptions {
    assignId: boolean;
}
export declare class SceneRenderersRegister {
    protected scene: PolyScene;
    private _renderersById;
    private _registerTimeByRenderer;
    private _lastRegisteredRenderer;
    private _resolves;
    constructor(scene: PolyScene);
    registerRenderer(renderer: AbstractRenderer, options?: RegisterRendererOptions): void;
    dispose(): void;
    deregisterRenderer(renderer: AbstractRenderer): void;
    lastRegisteredRenderer(): AbstractRenderer | undefined;
    renderers(target: AbstractRenderer[]): AbstractRenderer[];
    private _updateCache;
    private _flushCallbacksWithRenderer;
    waitForAbstractRenderer(): Promise<AbstractRenderer>;
    waitForRenderer(): Promise<WebGLRenderer | undefined>;
}
