import type FeatureLayer from "../../layers/FeatureLayer.js";
import type LayerView from "./LayerView.js";
import type { FeatureLayerViewMixin, FeatureLayerViewMixinProperties } from "./FeatureLayerViewMixin.js";
import type { HighlightLayerViewMixin, HighlightLayerViewMixinProperties } from "./HighlightLayerViewMixin.js";
import type { LayerViewProperties } from "./LayerView.js";

export interface FeatureLayerViewProperties extends LayerViewProperties, HighlightLayerViewMixinProperties, FeatureLayerViewMixinProperties {}

/**
 * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) of a [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html)
 * after it has been added to a [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html) in either a [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or
 * [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
 *
 * The FeatureLayerView is responsible for rendering a [FeatureLayer's](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html)
 * features as [graphics](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html). The [methods](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-FeatureLayerView.html#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/api-reference/esri-views-layers-FeatureLayerView.html#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/api-reference/esri-layers-FeatureLayer.html)
 * @see [Sample - Query FeatureLayerView](https://developers.arcgis.com/javascript/latest/sample-code/featurelayerview-query/)
 */
export default abstract class FeatureLayerView extends FeatureLayerViewSuperclass {
  /** The layer being viewed. */
  get layer(): FeatureLayer;
}
declare const FeatureLayerViewSuperclass: typeof LayerView & typeof HighlightLayerViewMixin & typeof FeatureLayerViewMixin