/// <reference types="svelte" />

export interface TabProps extends svelte.JSX.HTMLAttributes<HTMLElementTagNameMap["a"]> {
  /**
   * User defined classes
   * @default ""
   */
  className?: string;

  /**
   * Disables all styling, allowing you to further customize this component
   * @default false
   */
  styled?: boolean;

  /**
   * Specifies the URL of the page the link goes to
   * @default ""
   */
  href?: string;

  /**
   * The component's color theme
   * @default "dark"
   */
  theme?: "light" | "dark";

  /**
   * If this tab is the currently active tab
   * @default false
   */
  selected?: boolean;
}

export default class Tab {
  $$prop_def: TabProps;
  $$slot_def: {
    default: {};
  };

  $on(eventname: "click", cb: (event: WindowEventMap["click"]) => void): () => void;
  $on(eventname: "dblclick", cb: (event: WindowEventMap["dblclick"]) => void): () => void;
  $on(eventname: "mouseenter", cb: (event: WindowEventMap["mouseenter"]) => void): () => void;
  $on(eventname: "mouseleave", cb: (event: WindowEventMap["mouseleave"]) => void): () => void;
  $on(eventname: "mouseout", cb: (event: WindowEventMap["mouseout"]) => void): () => void;
  $on(eventname: "mouseover", cb: (event: WindowEventMap["mouseover"]) => void): () => void;
  $on(eventname: string, cb: (event: Event) => void): () => void;
}
