import type Color from "../../Color.js";
import type Accessor from "../../core/Accessor.js";
import type Collection from "../../core/Collection.js";
import type { ColorLike } from "../../Color.js";
import type { ReadonlyArrayOrCollection } from "../../core/Collection.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 DiscreteOptionsProperties extends Partial<Pick<DiscreteOptions, "interval">> {
  /**
   * Color of the shadow visualization. The opacity of the visualization is mapped to the number of overlapping
   * shadows. No shadow corresponds to opacity 0 and maximum number of shadows corresponds to the opacity set in this
   * color value.
   *
   * @default [50, 50, 50, 0.7]
   */
  color?: ColorLike;
  /** Values (in minutes) selectable in the UI for the interval used to accumulate shadows. */
  intervalOptions?: ReadonlyArrayOrCollection<number>;
}

/**
 * Configuration for the discrete 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 DiscreteOptions extends Accessor {
  constructor(properties?: DiscreteOptionsProperties);
  /**
   * Color of the shadow visualization. The opacity of the visualization is mapped to the number of overlapping
   * shadows. No shadow corresponds to opacity 0 and maximum number of shadows corresponds to the opacity set in this
   * color value.
   *
   * @default [50, 50, 50, 0.7]
   */
  get color(): Color;
  set color(value: ColorLike);
  /**
   * Individual shadows are displayed at this time interval, starting with the start time of day.
   * The interval is expressed in milliseconds. If set to 0, we'll use the smallest possible interval, up to a
   * maximum of 255 samples.
   *
   * @default 1 * 3600 * 1000
   */
  accessor interval: number;
  /** Values (in minutes) selectable in the UI for the interval used to accumulate shadows. */
  get intervalOptions(): Collection<number>;
  set intervalOptions(value: ReadonlyArrayOrCollection<number>);
}