import type { RouteRecordRaw, RouteMeta } from 'vue-router'; import { defineComponent } from 'vue'; export type Component = | ReturnType | (() => Promise) | (() => Promise); // @ts-ignore export interface AppRouteRecordRaw extends Omit { name: string; meta: RouteMeta; component?: Component | string; components?: Component; children?: AppRouteRecordRaw[]; fullPath?: string; } export interface Menu { name: string; icon?: string; path: string; // path contains param, auto assignment. paramPath?: string; disabled?: boolean; children?: Menu[]; orderNo?: number; meta?: Partial; hideMenu?: boolean; } // export type AppRouteModule = RouteModule | AppRouteRecordRaw; export type AppRouteModule = AppRouteRecordRaw;