import { Color, SphericalHarmonics3 } from "@galacean/engine-math";
import { ReferResource } from "../asset/ReferResource";
import { Engine } from "../Engine";
import { TextureCube } from "../texture";
import { DiffuseMode } from "./enums/DiffuseMode";
/**
 * Ambient light.
 */
export declare class AmbientLight extends ReferResource {
    private static _shMacro;
    private static _specularMacro;
    private static _diffuseColorProperty;
    private static _diffuseSHProperty;
    private static _diffuseIntensityProperty;
    private static _specularTextureProperty;
    private static _specularIntensityProperty;
    private static _mipLevelProperty;
    private _diffuseSphericalHarmonics;
    private _diffuseSolidColor;
    private _diffuseIntensity;
    private _specularTexture;
    private _specularIntensity;
    private _diffuseMode;
    private _shArray;
    private _scenes;
    /**
     * Diffuse mode of ambient light.
     */
    get diffuseMode(): DiffuseMode;
    set diffuseMode(value: DiffuseMode);
    /**
     * Diffuse reflection solid color.
     * @remarks Effective when diffuse reflection mode is `DiffuseMode.SolidColor`.
     */
    get diffuseSolidColor(): Color;
    set diffuseSolidColor(value: Color);
    /**
     * Diffuse reflection spherical harmonics 3.
     * @remarks Effective when diffuse reflection mode is `DiffuseMode.SphericalHarmonics`.
     */
    get diffuseSphericalHarmonics(): SphericalHarmonics3;
    set diffuseSphericalHarmonics(value: SphericalHarmonics3);
    /**
     * Diffuse reflection intensity.
     */
    get diffuseIntensity(): number;
    set diffuseIntensity(value: number);
    /**
     * Specular reflection texture.
     */
    get specularTexture(): TextureCube;
    set specularTexture(value: TextureCube);
    /**
     * Specular reflection intensity.
     */
    get specularIntensity(): number;
    set specularIntensity(value: number);
    constructor(engine: Engine);
    private _setDiffuseMode;
    private _setSpecularTexture;
    private _preComputeSH;
}
