import { ILightScene } from "@shapediver/viewer.rendering-engine.light-engine";
import { ITreeNode } from "@shapediver/viewer.shared.node-tree";
import { Color } from "@shapediver/viewer.shared.types";
import { vec3 } from "gl-matrix";
import { IViewportApi } from "../../interfaces/IViewportApi";
import { ILightApi } from "../../interfaces/lights/ILightApi";
import { ILightSceneApi } from "../../interfaces/lights/ILightSceneApi";
import { IAmbientLightApi } from "../../interfaces/lights/types/IAmbientLightApi";
import { IDirectionalLightApi } from "../../interfaces/lights/types/IDirectionalLightApi";
import { IHemisphereLightApi } from "../../interfaces/lights/types/IHemisphereLightApi";
import { IPointLightApi } from "../../interfaces/lights/types/IPointLightApi";
import { ISpotLightApi } from "../../interfaces/lights/types/ISpotLightApi";
export declare class LightSceneApi implements ILightSceneApi {
    #private;
    constructor(viewportApi: IViewportApi, lightScene: ILightScene);
    get id(): string;
    get lights(): {
        [key: string]: ILightApi;
    };
    get name(): string | undefined;
    set name(value: string | undefined);
    get node(): ITreeNode;
    addAmbientLight(properties: {
        color?: Color | undefined;
        intensity?: number | undefined;
        id?: string | undefined;
        name?: string | undefined;
    }): IAmbientLightApi;
    addDirectionalLight(properties: {
        color?: Color | undefined;
        intensity?: number | undefined;
        direction?: vec3 | undefined;
        castShadow?: boolean | undefined;
        shadowMapResolution?: number | undefined;
        shadowMapBias?: number | undefined;
        id?: string | undefined;
        name?: string | undefined;
    }): IDirectionalLightApi;
    addHemisphereLight(properties: {
        color?: Color | undefined;
        intensity?: number | undefined;
        groundColor?: Color | undefined;
        id?: string | undefined;
        name?: string | undefined;
    }): IHemisphereLightApi;
    addPointLight(properties: {
        color?: Color | undefined;
        intensity?: number | undefined;
        position?: vec3 | undefined;
        distance?: number | undefined;
        decay?: number | undefined;
        id?: string | undefined;
        name?: string | undefined;
    }): IPointLightApi;
    addSpotLight(properties: {
        color?: Color | undefined;
        intensity?: number | undefined;
        position?: vec3 | undefined;
        target?: vec3 | undefined;
        distance?: number | undefined;
        decay?: number | undefined;
        angle?: number | undefined;
        penumbra?: number | undefined;
        id?: string | undefined;
        name?: string | undefined;
    }): ISpotLightApi;
    removeLight(id: string): boolean;
}
//# sourceMappingURL=LightSceneApi.d.ts.map