/// <reference path="../../index.d.ts" />
import type SearchViewModel from "@arcgis/core/widgets/Search/SearchViewModel.js";
import type { ArcgisSearch } from "../arcgis-search/customElement.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";

/**
 * The Search Result Renderer renders the Search component results and allows expanding a DOM element to show alternative matches.
 * These alternative matches appear in the Show more results link.
 *
 * @internal
 */
export abstract class ArcgisSearchResultRenderer extends LitElement {
  /**
   * If true, the component will not be destroyed automatically when it is
   * disconnected from the document. This is useful when you want to move the
   * component to a different place on the page, or temporarily hide it. If this
   * is set, make sure to call the [destroy()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-search-result-renderer/#destroy) method when you are done to
   * prevent memory leaks.
   *
   * @default false
   */
  accessor autoDestroyDisabled: boolean;
  accessor messages: ArcgisSearch["messages"] | undefined;
  accessor viewModel: SearchViewModel | undefined;
  /** Permanently destroy the component. */
  destroy(): Promise<void>;
  /** Emitted when the component associated with a map or scene view is ready to be interacted with. */
  readonly arcgisReady: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    arcgisReady: ArcgisSearchResultRenderer["arcgisReady"]["detail"];
  };
}