import type { ClonableMixin } from "../../../core/Clonable.js";
import type { JSONSupport } from "../../../core/JSONSupport.js";

export interface GlowProperties extends Partial<Pick<Glow, "intensity">> {}

/**
 * Glow accentuates the effects of light emitters for illustrative visualizations, such as highlighting or filtering.
 *
 * Example:
 * ```js
 * let view = new SceneView({
 *   container: "viewDiv",
 *
 *   map: new Map({
 *     basemap: "satellite",
 *     ground: "world-elevation"
 *   }),
 *   environment: {
 *     glow: new Glow()
 *   }
 * });
 * ```
 * The visualization updates as soon as the property changes:
 * ```
 * view.environment.lighting.glow = new Glow({
 *    intensity: 0.8,
 * });
 * ```
 *
 * @since 5.0
 */
export default class Glow extends GlowSuperclass {
  constructor(properties?: GlowProperties);
  /**
   * Specifies the magnitude of the glow around light emitters.
   *
   * @default 0.5
   */
  accessor intensity: number;
}
declare const GlowSuperclass: typeof JSONSupport & typeof ClonableMixin