/// <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-dropdown-item-background-color-hover] - Specifies the component's background color when hovered.
 * @cssproperty [--calcite-dropdown-item-background-color-press] - Specifies the component's background color when `selected` or active.
 * @cssproperty [--calcite-dropdown-item-icon-color-hover] - [Deprecated] in v5.0.0, removal target v6.0.0 - Specifies the color of the component's selection icon when hovered.
 * @cssproperty [--calcite-dropdown-item-icon-color-press] - Specifies the color of the component's selection icon when `selected` or active.
 * @cssproperty [--calcite-dropdown-item-text-color-press] - Specifies the component's text color when `selected` or active.
 * @cssproperty [--calcite-dropdown-item-text-color] - Specifies the component's text color.
 * @slot  - A slot for adding text.
 */
export abstract class DropdownItem extends LitElement {
  /**
   * When `true`, prevents interaction and decreases the component's opacity.
   *
   * @default false
   */
  accessor disabled: boolean;
  /**
   * Specifies the URL of the linked resource, which can be set as an absolute or relative path.
   *
   * Determines if the component will render as an anchor.
   */
  accessor href: string;
  /** Specifies an icon to display at the end of the component. */
  accessor iconEnd: IconName;
  /** When the element direction is right-to-left (`"rtl"`), flips the component's `iconStart` and/or `iconEnd`. */
  accessor iconFlipRtl: FlipContext;
  /** Specifies an icon to display at the start of the component. */
  accessor iconStart: IconName;
  /** Specifies an accessible label for the component. */
  accessor label: string;
  /** Specifies the relationship to the linked resource defined in `href`. */
  accessor rel: string;
  /**
   * When `true`, the component is selected.
   *
   * @default false
   */
  accessor selected: boolean;
  /** Specifies the frame or window to open the linked resource. */
  accessor target: string;
  /**
   * Sets focus on the component.
   *
   * @param options - When specified an optional object customizes the component's focusing process. When `preventScroll` is `true`, scrolling will not occur on the component.
   * @see [MDN - focus(options)](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#options)
   */
  setFocus(options?: FocusOptions): Promise<void>;
  /** Fires when the component is selected. */
  readonly calciteDropdownItemSelect: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    calciteDropdownItemSelect: DropdownItem["calciteDropdownItemSelect"]["detail"];
  };
}