/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { Ref } from "lit-html/directives/ref.js";
import type { ArcgisFloorFilter as ArcgisFloorFilter2 } from "@arcgis/map-components/components/arcgis-floor-filter";

export abstract class MapFloorFilter extends LitElement {
  /**
   * boolean: when true the Floor Filter widget will be available
   *
   * @default false
   */
  accessor enabled: boolean;
  /** Reference to the floor filter web component */
  accessor floorFilterRef: Ref<ArcgisFloorFilter2>;
  /** esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
  accessor mapView: MapView | undefined;
  /** Emitted on demand when the Facility is changed */
  readonly facilityChanged: import("@arcgis/lumina").TargetedEvent<this, string>;
  /** Emitted on demand when the Level is changed */
  readonly levelChanged: import("@arcgis/lumina").TargetedEvent<this, string>;
  /** Emitted on demand when the Site is changed */
  readonly siteChanged: import("@arcgis/lumina").TargetedEvent<this, string>;
  readonly "@eventTypes": {
    facilityChanged: MapFloorFilter["facilityChanged"]["detail"];
    levelChanged: MapFloorFilter["levelChanged"]["detail"];
    siteChanged: MapFloorFilter["siteChanged"]["detail"];
  };
}