import type LayerView from "./LayerView.js";
import type { FeatureLayerViewMixin } from "./FeatureLayerViewMixin.js";
import type { HighlightLayerViewMixin, HighlightLayerViewMixinProperties } from "./HighlightLayerViewMixin.js";

export interface OGCFeatureLayerViewMixinProperties extends HighlightLayerViewMixinProperties {}

/**
 * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) of a [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.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 OGCFeatureLayerView is responsible for rendering a
 * [OGCFeatureLayer's](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.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).
 *
 * @since 4.16
 * @see [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.html)
 */
export abstract class OGCFeatureLayerViewMixin extends HighlightLayerViewMixin {
  constructor(...args: any[]);
}

export abstract class OGCFeatureLayerView extends OGCFeatureLayerViewSuperclass {}
declare const OGCFeatureLayerViewSuperclass: & typeof LayerView & typeof FeatureLayerViewMixin & typeof OGCFeatureLayerViewMixin