import type { WebGLRendererLoader } from "../../render/WebGLRendererLoader";
import type { Renderer, WebGLRenderer } from "three/src/Three";
export type RenderSettingObject = {
    useCss3DRenderer: boolean;
    webGLRendererLoader?: typeof WebGLRendererLoader;
    webGLRendererInitilizer?: () => WebGLRenderer | (readonly [Omit<Renderer, "domElement">, HTMLCanvasElement]);
};
export declare class RenderSetting {
    private readonly _renderSettingObject;
    constructor(renderSettingObject: RenderSettingObject);
    static createDefaultObject(): RenderSettingObject;
    /**
     * if true, use css3d renderer. (default: true)
     *
     * @param value if true, use css3d renderer.
     * @returns this
     */
    useCss3DRenderer(value: boolean): this;
    /**
     * webgl renderer loader.
     *
     * for use webgl renderer, you need to inject webgl renderer loader.
     * WebGLRendererLoader has dependency of WebGLRenderer.
     *
     * @param value webgl renderer loader
     * @returns this
     */
    webGLRendererLoader(value: typeof WebGLRendererLoader): this;
    /**
     * set webgl renderer. (default: undefined)
     *
     * you need to inject webgl renderer for use.
     *
     * @param value webgl renderer
     * @returns this
     */
    webGLRenderer(func: () => WebGLRenderer): this;
    webGLRenderer(func: () => readonly [Omit<Renderer, "domElement">, HTMLCanvasElement]): this;
}
