/// <reference path="../../index.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { FlipContext } from "../interfaces.js";
import type { IconName } from "../calcite-icon/interfaces.js";

/**
 * @cssproperty [--calcite-autocomplete-background-color] - Specifies the component's background color.
 * @cssproperty [--calcite-autocomplete-description-text-color] - Specifies the text color of the component's `description`.
 * @cssproperty [--calcite-autocomplete-heading-text-color] - Specifies the text color of the component's `heading`.
 * @cssproperty [--calcite-autocomplete-text-color] - Specifies the component's text color.
 * @slot [content-end] - A slot for adding non-actionable elements after content of the component.
 * @slot [content-start] - A slot for adding non-actionable elements before content of the component.
 */
export abstract class AutocompleteItem extends LitElement {
  /** Specifies a description for the component. Displays below the label text. */
  accessor description: string | undefined;
  /**
   * When `true`, interaction is prevented and the component is displayed with lower opacity.
   *
   * @default false
   */
  accessor disabled: boolean;
  /**
   * Specifies the component's heading text.
   *
   * @required
   */
  accessor heading: string;
  /** Specifies an icon to display at the end of the component. */
  accessor iconEnd: IconName | undefined;
  /** Displays the `iconStart` and/or `iconEnd` as flipped when the element direction is right-to-left (`"rtl"`). */
  accessor iconFlipRtl: FlipContext | undefined;
  /** Specifies an icon to display at the start of the component. */
  accessor iconStart: IconName | undefined;
  /** Specifies an accessible label for the component. */
  accessor label: string | undefined;
  /**
   * When `true`, the component is selected.
   *
   * @default false
   */
  accessor selected: boolean;
  /** Specifies the component's value. */
  accessor value: string;
  /** Fires when the item has been selected. */
  readonly calciteAutocompleteItemSelect: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    calciteAutocompleteItemSelect: AutocompleteItem["calciteAutocompleteItemSelect"]["detail"];
  };
}