import type Accessor from "../../core/Accessor.js";

/**
 * @deprecated since version 4.34. Use the [Daylight component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-daylight/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
 * @since 5.0
 */
export interface VisibleElementsProperties extends Partial<Pick<VisibleElements, "datePicker" | "header" | "playButtons" | "shadowsToggle" | "sunLightingToggle" | "timezone">> {}

/**
 * The visible elements that are displayed within the widget.
 * This provides the ability to turn individual elements of the widget's display on/off.
 *
 * @deprecated since version 4.34. Use the [Daylight component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-daylight/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
 * @since 5.0
 */
export default class VisibleElements extends Accessor {
  constructor(properties?: VisibleElementsProperties);
  /**
   * When set to `false`, neither the date nor the season picker are displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor datePicker: boolean;
  /**
   * When set to `false`, the header is not displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor header: boolean;
  /**
   * When set to `false`, neither of the play buttons are displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor playButtons: boolean;
  /**
   * When set to `false`, the shadows checkbox is not displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor shadowsToggle: boolean;
  /**
   * When set to `false`, the sun lighting checkbox is not displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor sunLightingToggle: boolean;
  /**
   * When set to `false`, the timezone selector is not displayed.
   *
   * @default true
   * @since 5.0
   */
  accessor timezone: boolean;
}