import { DefineComponent } from 'vue';

export type MenuItem = {
  label: string;
  to?: string;
};

/**
 * TabMenu component props
 */
export interface TabMenuProps {
  /**
   * An array of menu items.
   */
  menu: MenuItem[];
  /**
   * Defines type of TabMenu.
   */
  type: 'tab' | 'pill';
  /**
   * Active index of menuitem.
   */
  activeIndex?: number;
  /**
   * Defines if active route highlight should match the exact route path.
   */
  exact?: boolean;
}

/**
 * TabMenu component emits
 */
export type TabMenuEmits = {
  'update:activeIndex': [index: number];
};

/**
 * **TSVue - TabMenu**
 *
 * _TabMenu is a navigation component that displays items as tab headers._
 *
 * --- ---
 * ![TSVue](https://ik.imagekit.io/kurniadev/TS-HEAD-BLACK.png)
 *
 * @group components
 */
declare const TabMenu: DefineComponent<TabMenuProps, TabMenuEmits, MenuItem>;

export default TabMenu;
