import type Color from "../../Color.js";
import type Accessor from "../../core/Accessor.js";
import type { DurationMode } from "./types.js";
import type { ColorLike } from "../../Color.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 DurationOptionsProperties extends Partial<Pick<DurationOptions, "mode">> {
  /**
   * Color of the shadow visualization. The opacity is mapped to the time spent in shadow. Areas that don't receive any
   * shadow are displayed with zero opacity and areas that receive shadows for the entire time range are displayed
   * with the opacity specified in this property.
   *
   * @default [0, 0, 255, 0.7]
   */
  color?: ColorLike;
}

/**
 * Configuration for the duration 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 [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-shadow-cast/) or [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/) 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 DurationOptions extends Accessor {
  constructor(properties?: DurationOptionsProperties);
  /**
   * Color of the shadow visualization. The opacity is mapped to the time spent in shadow. Areas that don't receive any
   * shadow are displayed with zero opacity and areas that receive shadows for the entire time range are displayed
   * with the opacity specified in this property.
   *
   * @default [0, 0, 255, 0.7]
   */
  get color(): Color;
  set color(value: ColorLike);
  /**
   * Mode in which the cumulative shadow duration should be displayed: as a continuous surface or as an hourly
   * aggregation of values.
   *
   * @default "continuous"
   */
  accessor mode: DurationMode;
}