import { ComponentOptionsMixin, DefineComponent } from 'vue';
import { Touch } from 'zmp-core/modules/touch';

interface Props extends Touch.AppParams {
  store?: object;
  id?: any;
  name?: any;
  version?: any;
  theme?: any;
  language?: any;
  routes?: any[];
  autoDarkTheme?: any;
  lazyModulesPath?: any;
  initOnDeviceReady?: any;
  iosTranslucentBars?: any;
  iosTranslucentModals?: any;
  userAgent?: any;
  url?: any;
  accordion?: any;
  actions?: any;
  areaChart?: any;
  autocomplete?: any;
  calendar?: any;
  card?: any;
  colorPicker?: any;
  dialog?: any;
  form?: any;
  gauge?: any;
  grid?: any;
  infiniteScroll?: any;
  input?: any;
  lazy?: any;
  listIndex?: any;
  loginScreen?: any;
  messagebar?: any;
  messages?: any;
  navbar?: any;
  notification?: any;
  panel?: any;
  photoBrowser?: any;
  picker?: any;
  pieChart?: any;
  popover?: any;
  popup?: any;
  range?: any;
  searchbar?: any;
  sheet?: any;
  smartSelect?: any;
  sortable?: any;
  statusbar?: any;
  stepper?: any;
  swipeout?: any;
  textEditor?: any;
  toast?: any;
  toolbar?: any;
  tooltip?: any;
  view?: any;
  virtualList?: any;
  clicks?: any;
  serviceWorker?: any;
  color?: string;
  colorTheme?: string;
  textColor?: string;
  bgColor?: string;
  borderColor?: string;
  rippleColor?: string;
  themeDark?: boolean;
}

declare const App: DefineComponent<
  Props,
  () => JSX.Element,
  unknown,
  {},
  {},
  ComponentOptionsMixin,
  ComponentOptionsMixin
>;

export default App;
