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

/** @deprecated since 5.0. Use the [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-ShadowCastAnalysis.html) or [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-shadow-cast/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/). */
export interface ShadowCastVisibleElementsProperties extends Partial<Pick<ShadowCastVisibleElements, "colorPicker" | "datePicker" | "thresholdContext" | "thresholdContextColor" | "thresholdContextTimeInterval" | "thresholdContextToggle" | "timeRangeSlider" | "timezone" | "tooltip" | "visualizationOptions">> {}

/**
 * The visible elements that are displayed within the widget.
 * This provides the ability to turn individual elements of the widget's display on/off.
 */
export default abstract class ShadowCastVisibleElements extends Accessor {
  /**
   * When set to `false`, the color picker is not displayed in the options for any
   *   of the visualization modes.
   *
   * @default true
   */
  accessor colorPicker: boolean;
  /**
   * When set to `false`, the date picker is not displayed.
   *
   * @default true
   */
  accessor datePicker: boolean;
  /**
   * When set to `false`, the discrete shadows configuration in the threshold
   *   visualization mode is not displayed.
   *
   * @default true
   */
  accessor thresholdContext: boolean;
  /**
   * When set to `false`, the discrete shadows color picker in the
   *   threshold visualization mode is not displayed.
   *
   * @default true
   */
  accessor thresholdContextColor: boolean;
  /**
   * When set to `false`, the discrete shadows time interval in
   *   the threshold visualization mode is not displayed.
   *
   * @default true
   */
  accessor thresholdContextTimeInterval: boolean;
  /**
   * When set to `false`, the discrete shadows toggle in the threshold
   *   visualization mode is not displayed. The discrete shadow configuration is not displayed when discreteToggle is
   *   set to `false` and the discrete shadows visualization is turned off.
   *
   * @default true
   */
  accessor thresholdContextToggle: boolean;
  /**
   * When set to `false`, the slider used to select a time range for the
   *   analysis is not displayed.
   *
   * @default true
   */
  accessor timeRangeSlider: boolean;
  /**
   * When set to `false`, the dropdown used to select a timezone for the time range
   *   is not displayed.
   *
   * @default true
   */
  accessor timezone: boolean;
  /**
   * When set to `false`, the tooltip with the accumulated shadow time is not
   *   displayed when hovering the view.
   *
   * @default true
   */
  accessor tooltip: boolean;
  /**
   * When set to `false`, the options for the various visualization modes
   *   are not displayed.
   *
   * @default true
   */
  accessor visualizationOptions: boolean;
}