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

/**
 * @cssproperty [--calcite-navigation-accent-color] - When `active`, specifies the component's border color.
 * @cssproperty [--calcite-navigation-background-color] - Specifies the component's background color.
 * @cssproperty [--calcite-navigation-logo-heading-text-color] - Specifies the component's `heading` text color.
 * @cssproperty [--calcite-navigation-logo-text-color] - Specifies the component's `description` text color.
 */
export abstract class NavigationLogo extends LitElement {
  /**
   * When `true`, the component is highlighted.
   *
   * @default false
   */
  accessor active: boolean;
  /** Specifies a description for the component. Displays below the `heading`. */
  accessor description: string;
  /** Specifies the component's heading text. */
  accessor heading: string;
  /** Specifies the heading level number of the component's `heading` for proper document structure, without affecting visual styling. */
  accessor headingLevel: HeadingLevel;
  /** Specifies the URL destination of the component, which can be set as an absolute or relative path. */
  accessor href: string;
  /** Specifies an icon to display. */
  accessor icon: IconName;
  /**
   * When `true`, the icon will be flipped when the element direction is right-to-left (`"rtl"`).
   *
   * @default false
   */
  accessor iconFlipRtl: boolean;
  /** Specifies an accessible label for the component. */
  accessor label: string;
  /**
   * Defines the relationship between the `href` value and the current document.
   *
   * @see [MDN - rel](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel)
   */
  accessor rel: string;
  /**
   * Specifies where to open the linked document defined in the `href` property.
   *
   * @see [MDN - target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target)
   */
  accessor target: string;
  /** Specifies the `src` to an image. */
  accessor thumbnail: 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>;
}