import type SunLighting from "../SunLighting.js";
import type VirtualLighting from "../VirtualLighting.js";
import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { VirtualLightingProperties } from "../VirtualLighting.js";
import type { SunLightingProperties } from "../SunLighting.js";

/** @since 5.0 */
export interface SlideEnvironmentProperties {
  /**
   * Settings
   *           for defining the lighting of the scene.
   *
   * @since 5.0
   */
  lighting?: (SunLightingProperties & { type?: "sun" }) | (VirtualLightingProperties & { type: "virtual" });
}

/** @since 5.0 */
export default class SlideEnvironment extends SlideEnvironmentSuperclass {
  constructor(properties?: SlideEnvironmentProperties);
  /**
   * Settings
   *           for defining the lighting of the scene.
   *
   * @since 5.0
   */
  get lighting(): SunLighting | VirtualLighting;
  set lighting(value: (SunLightingProperties & { type?: "sun" }) | (VirtualLightingProperties & { type: "virtual" }));
}
declare const SlideEnvironmentSuperclass: typeof JSONSupport & typeof ClonableMixin