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

export abstract class MapSearch extends LitElement {
  /** esri/views/MapView: https://developers.arcgis.com/javascript/latest/api-reference/esri-views/MapView.html */
  accessor mapView: MapView | undefined;
  /**
   * boolean: When true the selected feature popup will be shown when search result is found
   *
   * @default false
   */
  accessor popupEnabled: boolean;
  /**
   * boolean: When true a graphic will be added for the search result
   *
   * @default false
   */
  accessor resultGraphicEnabled: boolean;
  /** ArcgisSearch: The search widget element */
  accessor searchComponent: Ref<ArcgisSearch2>;
  /** ISearchConfiguration: Configuration details for the Search widget */
  accessor searchConfiguration: ISearchConfiguration | undefined;
  /**
   * string: Text entered by the end user.
   * Used to search against the locator.
   *
   * @default ''
   */
  accessor searchTerm: string;
}