/// <reference path="../../index.d.ts" />
/// <reference types="@arcgis/core/interfaces.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { VisibilityIconType } from "../../utils/interfaces.js";

export abstract class LayerListWidget extends LitElement {
  /** arcgis/core/widgets/LayerList: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html */
  accessor layerListWidget: __esri.LayerList | undefined;
  /** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
  accessor mapView: __esri.MapView | undefined;
  /**
   * VisibilityIconType: visibility icon for the layer list widget
   *
   * @default 'eyeball'
   */
  accessor visibilityIcon: VisibilityIconType;
  /** Emitted on demand when the fullscreen widget state has changed */
  readonly fullscreenStateChange: import("@arcgis/lumina").TargetedEvent<this, string>;
  readonly "@eventTypes": {
    fullscreenStateChange: LayerListWidget["fullscreenStateChange"]["detail"];
  };
}