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

declare const ListItem: DefineComponent<
  {
    title?: string | number;
    text?: string | number;
    media?: string;
    subtitle?: string | number;
    header?: string | number;
    footer?: string | number;
    description?: string;
    tooltip?: string;
    tooltipTrigger?: string;
    link?: boolean | string;
    target?: string;
    tabLink?: boolean | string;
    tabLinkActive?: boolean;
    selected?: boolean;
    after?: string | number;
    badge?: string | number;
    badgeColor?: string;
    mediaItem?: boolean;
    mediaList?: boolean;
    divider?: boolean;
    groupTitle?: boolean;
    swipeout?: boolean;
    swipeoutOpened?: boolean;
    accordionItem?: boolean;
    accordionItemOpened?: boolean;
    smartSelect?: boolean;
    smartSelectParams?: object;
    noChevron?: boolean;
    chevronCenter?: boolean;
    checkbox?: boolean;
    radio?: boolean;
    radioIcon?: 'start' | 'end';
    checked?: boolean;
    indeterminate?: boolean;
    name?: string;
    readonly?: boolean;
    required?: boolean;
    disabled?: boolean;
    virtualListIndex?: number;
    sortable?: boolean;
    sortableOpposite?: boolean;
    value?: string | number | any[];
    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?: object;
    preventRouter?: boolean;
    transition?: Router.Transition;
    openIn?: string;
  },
  () => JSX.Element,
  unknown,
  {},
  {},
  ComponentOptionsMixin,
  ComponentOptionsMixin,
  (
    | 'click'
    | 'taphold'
    | 'swipeout'
    | 'swipeout:overswipeenter'
    | 'swipeout:overswipeexit'
    | 'swipeout:deleted'
    | 'swipeout:delete'
    | 'swipeout:close'
    | 'swipeout:closed'
    | 'swipeout:open'
    | 'swipeout:opened'
    | 'accordion:beforeclose'
    | 'accordion:close'
    | 'accordion:closed'
    | 'accordion:beforeopen'
    | 'accordion:open'
    | 'accordion:opened'
    | 'change'
    | 'update:checked'
  )[],
  | 'click'
  | 'taphold'
  | 'swipeout'
  | 'swipeout:overswipeenter'
  | 'swipeout:overswipeexit'
  | 'swipeout:deleted'
  | 'swipeout:delete'
  | 'swipeout:close'
  | 'swipeout:closed'
  | 'swipeout:open'
  | 'swipeout:opened'
  | 'accordion:beforeclose'
  | 'accordion:close'
  | 'accordion:closed'
  | 'accordion:beforeopen'
  | 'accordion:open'
  | 'accordion:opened'
  | 'change'
  | 'update:checked'
>;

export default ListItem;
