/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { VisibilityIconType } from "../../utils/interfaces.js";
import type { Ref } from "lit-html/directives/ref.js";
import type { ArcgisLayerList as ArcgisLayerList2 } from "@arcgis/map-components/components/arcgis-layer-list";

export abstract class LayerListWidget extends LitElement {
  /** arcgis-layer-list web component: https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list/ */
  accessor layerListRef: Ref<ArcgisLayerList2>;
  /** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
  accessor mapView: MapView | undefined;
  /**
   * VisibilityIconType: visibility icon for the layer list widget
   *
   * @default 'eyeball'
   */
  accessor visibilityIcon: VisibilityIconType;
}