/**
 * Creates a THREE.Scene.
 *
 * @remarks
 * By default, all objects created will be added under the same master scene. This is enough in most cases, but there might be times where you want to use a custom one. For instance:
 *
 * - you would like to change the background color or the environment.
 * - you would like to have a fog.
 * - You may also use multiple scenes, if you want to switch from one to the other.
 *
 * For those situtation, you can parent the objects under a scene node, and set your camera scene parameter to point to it. The camera will then render this scene instead of the master one.
 *
 *
 */
import { TypedObjNode } from './_Base';
import { Scene } from 'three';
import { HierarchyController } from './utils/HierarchyController';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SceneAutoUpdateController } from '../manager/utils/Scene/AutoUpdate';
import { SceneBackgroundController } from '../manager/utils/Scene/Background';
import { SceneEnvController } from '../manager/utils/Scene/Env';
import { SceneFogController } from '../manager/utils/Scene/Fog';
import { SceneMaterialOverrideController } from '../manager/utils/Scene/MaterialOverride';
import { ObjType } from '../../poly/registers/nodes/types/Obj';
declare const SceneObjParamConfig_base: {
    new (...args: any[]): {
        useOverrideMaterial: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
        overrideMaterial: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.NODE_PATH>;
    };
} & {
    new (...args: any[]): {
        useFog: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
        fogType: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
        fogColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
        fogNear: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        fogFar: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        fogDensity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    };
} & {
    new (...args: any[]): {
        useEnvironment: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
        environment: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.NODE_PATH>;
        environmentIntensity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        environmentRotation: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.VECTOR3>;
    };
} & {
    new (...args: any[]): {
        backgroundMode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
        bgColor: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.COLOR>;
        bgTexture: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.NODE_PATH>;
        bgBlur: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
        bgIntensity: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    };
} & {
    new (...args: any[]): {
        autoUpdate: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    };
} & typeof NodeParamsConfig;
declare class SceneObjParamConfig extends SceneObjParamConfig_base {
}
export declare class SceneObjNode extends TypedObjNode<Scene, SceneObjParamConfig> {
    paramsConfig: SceneObjParamConfig;
    static type(): Readonly<ObjType.SCENE>;
    readonly hierarchyController: HierarchyController;
    createObject(): Scene;
    initializeNode(): void;
    private _cook_main_without_inputs_when_dirty_bound;
    private _cook_main_without_inputs_when_dirty;
    readonly sceneAutoUpdateController: SceneAutoUpdateController;
    readonly sceneBackgroundController: SceneBackgroundController;
    readonly sceneEnvController: SceneEnvController;
    readonly sceneFogController: SceneFogController;
    readonly sceneMaterialOverrideController: SceneMaterialOverrideController;
    cook(): void;
}
export {};
