import { Constructor } from '../../../../types/GlobalTypes';
import { TypedMatNode } from '../_Base';
import { BaseTextureMapController } from './_BaseTextureController';
import { MeshBasicMaterial } from 'three';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
import { MeshLambertMaterial } from 'three';
import { MeshPhongMaterial } from 'three';
import { MaterialTexturesRecord, SetParamsTextureNodesRecord } from './_BaseController';
export declare function EnvMapSimpleParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param toggle if you want to use an environment map */
        useEnvMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param specify the environment map COP node. Note that this only works with CubeCamera */
        envMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
        /** @param defines how the env map is combined with the color */
        combine: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.INTEGER>;
        /** @param environment intensity */
        reflectivity: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        /** @param refraction ratio */
        refractionRatio: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & TBase;
type TextureEnvMapSimpleCurrentMaterial = MeshBasicMaterial | MeshLambertMaterial | MeshPhongMaterial;
declare const TextureEnvMapSimpleParamsConfig_base: {
    new (...args: any[]): {
        /** @param toggle if you want to use an environment map */
        useEnvMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param specify the environment map COP node. Note that this only works with CubeCamera */
        envMap: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.NODE_PATH>;
        /** @param defines how the env map is combined with the color */
        combine: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.INTEGER>;
        /** @param environment intensity */
        reflectivity: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        /** @param refraction ratio */
        refractionRatio: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & typeof NodeParamsConfig;
declare class TextureEnvMapSimpleParamsConfig extends TextureEnvMapSimpleParamsConfig_base {
}
export interface TextureEnvMapSimpleControllers {
    envMap: TextureEnvMapSimpleController;
}
declare abstract class TextureEnvMapSimpleMatNode extends TypedMatNode<TextureEnvMapSimpleCurrentMaterial, TextureEnvMapSimpleParamsConfig> {
    controllers: TextureEnvMapSimpleControllers;
    material(): Promise<TextureEnvMapSimpleCurrentMaterial | undefined>;
}
export declare class TextureEnvMapSimpleController extends BaseTextureMapController {
    protected node: TextureEnvMapSimpleMatNode;
    constructor(node: TextureEnvMapSimpleMatNode);
    initializeNode(): void;
    static update(node: TextureEnvMapSimpleMatNode): Promise<void>;
    update(): Promise<void>;
    updateMaterial(material: TextureEnvMapSimpleCurrentMaterial): Promise<void>;
    getTextures(material: TextureEnvMapSimpleCurrentMaterial, record: MaterialTexturesRecord): void;
    setParamsFromMaterial(material: TextureEnvMapSimpleCurrentMaterial, record: SetParamsTextureNodesRecord): void;
}
export {};
