/* Menu */ declare namespace Menu { interface MenuOptions { path: string; name: string; component?: string | (() => Promise); redirect?: string; meta: MetaProps; children?: MenuOptions[]; } interface MetaProps { icon: string; title: string; activeMenu?: string; isLink?: string; isHide: boolean; isFull: boolean; isAffix: boolean; isKeepAlive: boolean; } } /* table */ declare type Key = string | number; declare type DefaultRecordType = any; /* FileType */ declare namespace File { type ImageMimeType = "image/apng" | "image/bmp" | "image/gif" | "image/jpeg" | "image/pjpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "image/x-icon"; type ExcelMimeType = "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; } /* Vite */ declare type Recordable = Record; declare interface ViteEnv { VITE_USER_NODE_ENV: "development" | "production" | "test"; VITE_GLOB_APP_TITLE: string; VITE_PORT: number; VITE_OPEN: boolean; VITE_REPORT: boolean; VITE_BUILD_COMPRESS: "gzip" | "brotli" | "gzip,brotli" | "none"; VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean; VITE_DROP_CONSOLE: boolean; VITE_PWA: boolean; VITE_PUBLIC_PATH: string; VITE_API_URL: string; VITE_PROXY: [string, string][]; } interface ImportMetaEnv extends ViteEnv { __: unknown; } /* __APP_INFO__ */ declare const __APP_INFO__: { pkg: { name: string; version: string; dependencies: Recordable; devDependencies: Recordable; }; lastBuildTime: string; }; /* Generic Tools */ type ObjToKeyValUnion = { [K in keyof T]: { key: K; value: T[K] }; }[keyof T]; type ObjToKeyValArray = { [K in keyof T]: [K, T[K]]; }[keyof T];