import type VectorTileLayer from "../../layers/VectorTileLayer.js";
import type LayerView from "./LayerView.js";

/**
 * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) of a [VectorTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VectorTileLayer/)
 * 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 VectorTileLayerView is responsible for rendering a
 * [VectorTileLayer's](https://developers.arcgis.com/javascript/latest/references/core/layers/VectorTileLayer/) content in the [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/).
 *
 * @since 4.31
 * @see [VectorTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VectorTileLayer/)
 */
export default abstract class VectorTileLayerView extends LayerView {
  /** When `false`, it indicates that tiles have no visible features within the current extent. */
  abstract readonly hasVisibleFeatures: boolean;
  /** The layer being viewed. */
  get layer(): VectorTileLayer;
}