import type FeatureLayer from "../../layers/FeatureLayer.js";
import type FeatureLikeLayerView from "./FeatureLikeLayerView.js";

/**
 * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) of a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
 * after it has been added to a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) in either a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or
 * [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
 *
 * The FeatureLayerView is responsible for rendering a [FeatureLayer's](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
 * features as [graphics](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) in the [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/). The [methods](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryExtent)
 * in the FeatureLayerView provide developers with the ability to query and highlight graphics in the view. See the
 * code snippets in the [methods](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryExtent) below for examples of how to access client-side graphics from the
 * view.
 *
 * @since 4.0
 * @see [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
 * @see [Sample - Query FeatureLayerView](https://developers.arcgis.com/javascript/latest/sample-code/featurelayerview-query/)
 */
export default abstract class FeatureLayerView extends FeatureLikeLayerView {
  /** The layer being viewed. */
  get layer(): FeatureLayer;
}