import type Color from "../../Color.js";
import type Accessor from "../../core/Accessor.js";
import type DiscreteOptions from "./DiscreteOptions.js";
import type { ColorLike } from "../../Color.js";
import type { DiscreteOptionsProperties } from "./DiscreteOptions.js";

/** @deprecated since version 5.0. Use the [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/) or [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/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 ThresholdOptionsProperties extends Partial<Pick<ThresholdOptions, "contextEnabled" | "maxValue" | "minValue" | "value">> {
  /**
   * Color of the shadow visualization. The areas with cumulative shadow time longer than the threshold value are
   * displayed with this color.
   *
   * @default [255, 0 , 0, 0.7]
   */
  color?: ColorLike;
  /**
   * The configuration used when showing additional context by setting [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextEnabled)
   * to true. The default configuration will show the shadows at 1 hour intervals as context for the
   * threshold visualization.
   *
   * @since 4.33
   * @see [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextEnabled)
   */
  contextOptions?: DiscreteOptionsProperties;
}

/**
 * Configuration for the threshold visualization of the Shadow Cast
 * [widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/) and
 * [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-shadow-cast/).
 *
 * @deprecated since version 5.0. Use the [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/) or [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/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/).
 * @since 4.33
 * @see [ShadowCast](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/) widget - Deprecated since 5.0. Use the [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-shadow-cast/) instead.
 * @see [ShadowCastViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ShadowCastViewModel/) - Deprecated since 5.0. Use the [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/) or [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-shadow-cast/) instead.
 */
export default class ThresholdOptions extends Accessor {
  constructor(properties?: ThresholdOptionsProperties);
  /**
   * Color of the shadow visualization. The areas with cumulative shadow time longer than the threshold value are
   * displayed with this color.
   *
   * @default [255, 0 , 0, 0.7]
   */
  get color(): Color;
  set color(value: ColorLike);
  /**
   * Whether to enable additional context showing discrete shadows at the same time as displaying
   * the threshold. The [contextOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextOptions) property is used to configure the
   * visualization of the discrete shadows when context is enabled.
   *
   * @default false
   * @since 4.33
   * @see [contextOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextOptions)
   */
  accessor contextEnabled: boolean;
  /**
   * The configuration used when showing additional context by setting [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextEnabled)
   * to true. The default configuration will show the shadows at 1 hour intervals as context for the
   * threshold visualization.
   *
   * @since 4.33
   * @see [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#contextEnabled)
   */
  get contextOptions(): DiscreteOptions;
  set contextOptions(value: DiscreteOptionsProperties);
  /**
   * The maximum time period (in milliseconds) selectable in the UI for the threshold
   * [value](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#value). The values in the widget slider are displayed in hours.
   *
   * @default 8 * 3600 * 1000
   */
  accessor maxValue: number;
  /**
   * The minimum time period (in milliseconds) selectable in the UI for the threshold
   * [value](https://developers.arcgis.com/javascript/latest/references/core/widgets/ShadowCast/ThresholdOptions/#value). The values in the widget slider are displayed in hours.
   *
   * @default 0 * 3600 * 1000
   */
  accessor minValue: number;
  /**
   * Time period in milliseconds. Only shadows cast for more time than this value are displayed.
   *
   * @default 4 * 3600 * 1000
   */
  accessor value: number;
}