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

/**
 * @deprecated Use the `calcite-sort-handle` component instead.
 * @cssproperty [--calcite-handle-background-color] - Specifies the component's background color.
 * @cssproperty [--calcite-handle-background-color-hover] - Specifies the component's background color on hover.
 * @cssproperty [--calcite-handle-background-color-selected] - Specifies the component's background color when selected.
 * @cssproperty [--calcite-handle-icon-color] - Specifies the component's icon color.
 * @cssproperty [--calcite-handle-icon-color-hover] - Specifies the component's icon color on hover.
 * @cssproperty [--calcite-handle-icon-color-selected] - Specifies the component's icon color when selected.
 */
export abstract class Handle extends LitElement {
  /**
   * When `true`, interaction is prevented and the component is displayed with lower opacity.
   *
   * @default false
   */
  accessor disabled: boolean;
  /** Value for the button title attribute. */
  accessor dragHandle: string;
  /** Overrides individual strings used by the component. */
  accessor messageOverrides: {
      dragHandle?: string;
      dragHandleUntitled?: string;
      dragHandleActive?: string;
      dragHandleChange?: string;
      dragHandleCommit?: string;
      dragHandleIdle?: string;
  };
  /**
   * When `true`, the component is selected.
   *
   * @default false
   */
  accessor selected: boolean;
  /**
   * 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 whenever the component is selected or unselected. */
  readonly calciteHandleChange: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Fires when the handle is selected and the up or down arrow key is pressed. */
  readonly calciteHandleNudge: import("@arcgis/lumina").TargetedEvent<this, HandleNudge>;
  readonly "@eventTypes": {
    calciteHandleChange: Handle["calciteHandleChange"]["detail"];
    calciteHandleNudge: Handle["calciteHandleNudge"]["detail"];
  };
}