import { type Scene } from "../../scene.js";
import { Color3 } from "../../Maths/math.color.js";
import { PBRBaseMaterial } from "./pbrBaseMaterial.js";
import { type BaseTexture } from "../../Materials/Textures/baseTexture.js";
import { type Nullable } from "../../types.js";
/**
 * The Physically based simple base material of BJS.
 *
 * This enables better naming and convention enforcements on top of the pbrMaterial.
 * It is used as the base class for both the specGloss and metalRough conventions.
 */
export declare abstract class PBRBaseSimpleMaterial extends PBRBaseMaterial {
    /**
     * Number of Simultaneous lights allowed on the material.
     */
    maxSimultaneousLights: number;
    /**
     * If sets to true, disables all the lights affecting the material.
     */
    disableLighting: boolean;
    /**
     * Environment Texture used in the material (this is use for both reflection and environment lighting).
     */
    environmentTexture: Nullable<BaseTexture>;
    /**
     * If sets to true, x component of normal map value will invert (x = 1.0 - x).
     */
    invertNormalMapX: boolean;
    /**
     * If sets to true, y component of normal map value will invert (y = 1.0 - y).
     */
    invertNormalMapY: boolean;
    /**
     * Normal map used in the model.
     */
    normalTexture: Nullable<BaseTexture>;
    /**
     * Emissivie color used to self-illuminate the model.
     */
    emissiveColor: Color3;
    /**
     * Emissivie texture used to self-illuminate the model.
     */
    emissiveTexture: Nullable<BaseTexture>;
    /**
     * Occlusion Channel Strength.
     */
    occlusionStrength: number;
    /**
     * Occlusion Texture of the material (adding extra occlusion effects).
     */
    occlusionTexture: Nullable<BaseTexture>;
    /**
     * Defines the alpha limits in alpha test mode.
     */
    alphaCutOff: number;
    /**
     * Gets the current double sided mode.
     */
    get doubleSided(): boolean;
    /**
     * If sets to true and backfaceCulling is false, normals will be flipped on the backside.
     */
    set doubleSided(value: boolean);
    /**
     * Stores the pre-calculated light information of a mesh in a texture.
     */
    lightmapTexture: Nullable<BaseTexture>;
    /**
     * If true, the light map contains occlusion information instead of lighting info.
     */
    useLightmapAsShadowmap: boolean;
    /**
     * Instantiates a new PBRMaterial instance.
     *
     * @param name The material name
     * @param scene The scene the material will be use in.
     */
    constructor(name: string, scene?: Scene);
    getClassName(): string;
}
