import type Color from "../../Color.js";
import type ElevationProfileLine from "./ElevationProfileLine.js";
import type { ElevationProfileLineProperties } from "./ElevationProfileLine.js";
import type { ColorLike } from "../../Color.js";

/** @deprecated since version 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) or [ElevationProfileLineInput](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineInput/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) 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 ElevationProfileLineInputProperties extends ElevationProfileLineProperties {
  /**
   * Color of the line on the chart and in the view.
   *
   * @default "#00c8c8"
   */
  color?: ColorLike;
  /**
   * Whether a line visualization representing [elevationSamples](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLine/#samples)
   * should be added to the [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This property doesn't apply to [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
   *
   * @default false
   * @since 4.20
   */
  viewVisualizationEnabled?: boolean;
}

/**
 * Profile line which samples elevation from the geometry of the input [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/)
 * itself, typically used on input lines with z values. If the input graphic is draped
 * ([elevation mode](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#elevationInfo) is "on-the-ground"), the elevation is sampled
 * from the [Ground](https://developers.arcgis.com/javascript/latest/references/core/Ground/), in case the scene has ground layers.
 *
 * In 2D z values are not fetched from feature based layers. Therefore, a profile is generated for
 * ElevationProfileLineInput only when the input feature is a client-side graphic with z values
 * in a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
 *
 * ![elevation-profile-zline](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/elevation-profile/elevation-profile-zline.avif)
 * _Profile generated from a line feature with z-values. The orange profile is created with a profile line of type input._
 *
 * @deprecated since version 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) or [ElevationProfileLineInput](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineInput/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) 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.18
 * @see [ElevationProfile](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/) widget - Deprecated since 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) instead.
 * @see [ElevationProfileViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileViewModel/) - Deprecated since 5.0. Use [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
 * @see [ElevationProfileLineGround](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineGround/) - Deprecated since 5.0. Use [ElevationProfileLineGround](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineGround/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
 * @see [ElevationProfileLineQuery](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineQuery/) - Deprecated since 5.0. Use [ElevationProfileLineQuery](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineQuery/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
 * @see [ElevationProfileLineView](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineView/) - Deprecated since 5.0. Use [ElevationProfileLineScene](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineScene/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
 * @example
 * const elevationProfile = new ElevationProfile({
 *   view: view,
 *   profiles: [{
 *     type: "input",
 *     color: "orange"
 *   }, {
 *     type: "ground",
 *     color: "lime"
 *   }]
 * });
 */
export default class ElevationProfileLineInput extends ElevationProfileLine {
  constructor(properties?: ElevationProfileLineInputProperties);
  /**
   * Color of the line on the chart and in the view.
   *
   * @default "#00c8c8"
   */
  get color(): Color;
  set color(value: ColorLike);
  /** The line type. */
  readonly type: "input";
  /**
   * Whether a line visualization representing [elevationSamples](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLine/#samples)
   * should be added to the [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This property doesn't apply to [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
   *
   * @default false
   * @since 4.20
   */
  accessor viewVisualizationEnabled: boolean;
}