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

/**
 * @cssproperty [--calcite-ui-icon-color] - [Deprecated] Use `--calcite-icon-color`. Specifies the component's color. Defaults to current color.
 * @cssproperty [--calcite-icon-color] - Specifies the component's color. Defaults to current color.
 */
export abstract class Icon extends LitElement {
  /**
   * When `true` and the element direction is right-to-left (`"rtl"`), flips the component's `icon`.
   *
   * @default false
   */
  accessor flipRtl: boolean;
  /**
   * Specifies an icon to display.
   *
   * @see [Calcite UI Icons](https://developers.arcgis.com/calcite-design-system/icons).
   */
  accessor icon: IconName;
  /**
   * When `true`, preloads the `icon` data.
   *
   * @default false
   */
  accessor preload: boolean;
  /**
   * Specifies the size of the component.
   *
   * @default "m"
   */
  accessor scale: Scale;
  /**
   * Specifies the component's accessible name.
   *
   * It is recommended to set this value if your icon is semantic.
   */
  accessor textLabel: string;
}