import { ComponentOptionsMixin, DefineComponent } from 'vue';
import { Router } from 'zmp-core/modules/router';
import { Icon } from 'zmp-core/types';

declare const Link: DefineComponent<
  {
    noLinkClass?: boolean;
    text?: string;
    tabLink?: boolean | string;
    tabLinkActive?: boolean;
    tabbarLabel?: boolean;
    iconOnly?: boolean;
    iconBadge?: string | number;
    badge?: string | number;
    badgeColor?: string;
    target?: string;
    tooltip?: string;
    tooltipTrigger?: string;
    smartSelect?: boolean;
    smartSelectParams?: any;
    href?: string | boolean;
    icon?: string;
    iconMaterial?: string;
    iconZmp?: Icon.IconZMP;
    iconIos?: string;
    iconMd?: string;
    iconAurora?: string;
    iconColor?: string;
    iconSize?: string | number;
    color?: string;
    colorTheme?: string;
    textColor?: string;
    bgColor?: string;
    borderColor?: string;
    rippleColor?: string;
    themeDark?: boolean;
    searchbarEnable?: boolean | string;
    searchbarDisable?: boolean | string;
    searchbarClear?: boolean | string;
    searchbarToggle?: boolean | string;
    panelOpen?: boolean | string;
    panelClose?: boolean | string;
    panelToggle?: boolean | string;
    popupOpen?: boolean | string;
    popupClose?: boolean | string;
    actionsOpen?: boolean | string;
    actionsClose?: boolean | string;
    popoverOpen?: boolean | string;
    popoverClose?: boolean | string;
    loginScreenOpen?: boolean | string;
    loginScreenClose?: boolean | string;
    sheetOpen?: boolean | string;
    sheetClose?: boolean | string;
    sortableEnable?: boolean | string;
    sortableDisable?: boolean | string;
    sortableToggle?: boolean | string;
    cardOpen?: boolean | string;
    cardPreventOpen?: boolean | string;
    cardClose?: boolean | string;
    menuClose?: boolean | string;
    back?: boolean;
    external?: boolean;
    force?: boolean;
    animate?: boolean;
    ignoreCache?: boolean;
    reloadCurrent?: boolean;
    reloadAll?: boolean;
    reloadPrevious?: boolean;
    reloadDetail?: boolean;
    routeTabId?: string;
    view?: string;
    routeProps?: any;
    preventRouter?: boolean;
    transition?: Router.Transition;
    openIn?: string;
  },
  () => JSX.Element,
  unknown,
  {},
  {},
  ComponentOptionsMixin,
  ComponentOptionsMixin,
  'click'[],
  'click'
>;

export default Link;
