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

export abstract class ColorPickerHexInput extends LitElement {
  /**
   * When `true`, an empty color (`undefined`) will be allowed as a `value`.
   *
   * When `false`, a color value is enforced, and clearing the input or blurring will restore the last valid `value`.
   *
   * @default false
   */
  accessor allowEmpty: boolean;
  /**
   * When `true`, the component will allow updates to the color's alpha value.
   *
   * @default false
   */
  accessor alphaChannel: boolean;
  /**
   * Specifies accessible label for the input field.
   *
   * @deprecated use `messages` instead
   * @default "Hex"
   */
  accessor hexLabel: string;
  /** Specifies the Unicode numeral system used by the component for localization. */
  accessor numberingSystem: NumberingSystem | undefined;
  /**
   * Specifies the size of the component.
   *
   * @default "m"
   */
  accessor scale: Scale;
  /** The hex value. */
  accessor value: string | undefined;
  /**
   * 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>;
  /** Emitted when the hex value changes. */
  readonly calciteColorPickerHexInputChange: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    calciteColorPickerHexInputChange: ColorPickerHexInput["calciteColorPickerHexInputChange"]["detail"];
  };
}