/// <reference path="../../index.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { TabPosition } from "../calcite-tabs/interfaces.js";
import type { TabTitle } from "../calcite-tab-title/customElement.js";

/**
 * @cssproperty [--calcite-tab-background-color] - Specifies the component's background color.
 * @cssproperty [--calcite-tab-border-color] - When `calcite-tabs` is `bordered`, specifies the component's border color.
 * @cssproperty [--calcite-tab-text-color] - Specifies the component's `iconStart`, `iconEnd`, and text color.
 * @slot  - A slot for adding `calcite-tab-title`s.
 */
export abstract class TabNav extends LitElement {
  /** Overrides individual strings used by the component. */
  accessor messageOverrides: {
      nextTabTitles?: string;
      previousTabTitles?: string;
  };
  /**
   * Specifies the position of `calcite-tab-nav` and `calcite-tab-title` components in relation to, and is inherited from the parent `calcite-tabs`, defaults to `top`.
   *
   *  \@internal
   *
   * @default "bottom"
   */
  accessor position: TabPosition;
  /** Specifies the component's selected `calcite-tab-title`. */
  get selectedTitle(): TabTitle | null;
  /** Specifies the name when saving selected `calcite-tab` data to `localStorage`. */
  accessor storageId: string | undefined;
  /** Specifies text to update multiple components to keep in sync if one changes. */
  accessor syncId: string | undefined;
  /** Emits when the selected `calcite-tab` changes. */
  readonly calciteTabChange: import("@arcgis/lumina").TargetedEvent<this, void>;
  readonly "@eventTypes": {
    calciteTabChange: TabNav["calciteTabChange"]["detail"];
  };
}