import type { ComponentRenderProxy, VNode, ComponentPublicInstance, FunctionalComponent, PropType as VuePropType } from "vue"; import type { ECharts } from "echarts"; import { type ResponsiveStorage } from "./index"; // GlobalComponents for Volar declare module "vue" { export interface GlobalComponents { IconifyIconOffline: typeof import("../src/components/ReIcon")["IconifyIconOffline"]; IconifyIconOnline: typeof import("../src/components/ReIcon")["IconifyIconOnline"]; FontIcon: typeof import("../src/components/ReIcon")["FontIcon"]; Auth: typeof import("../src/components/ReAuth")["Auth"]; } } declare global { const __APP_INFO__: { pkg: { name: string; version: string; dependencies: Recordable; devDependencies: Recordable; }; lastBuildTime: string; }; interface Window { // Global vue app instance __APP__: App; webkitCancelAnimationFrame: (handle: number) => void; mozCancelAnimationFrame: (handle: number) => void; oCancelAnimationFrame: (handle: number) => void; msCancelAnimationFrame: (handle: number) => void; webkitRequestAnimationFrame: (callback: FrameRequestCallback) => number; mozRequestAnimationFrame: (callback: FrameRequestCallback) => number; oRequestAnimationFrame: (callback: FrameRequestCallback) => number; msRequestAnimationFrame: (callback: FrameRequestCallback) => number; } // vue type PropType = VuePropType; type Writable = { -readonly [P in keyof T]: T[P]; }; type Nullable = T | null; type NonNullable = T extends null | undefined ? never : T; type Recordable = Record; type ReadonlyRecordable = { readonly [key: string]: T; }; type Indexable = { [key: string]: T; }; type DeepPartial = { [P in keyof T]?: DeepPartial; }; type TimeoutHandle = ReturnType; type IntervalHandle = ReturnType; interface ChangeEvent extends Event { target: HTMLInputElement; } interface WheelEvent { path?: EventTarget[]; } interface ImportMetaEnv extends ViteEnv { __: unknown; } type ViteCompression = | "none" | "gzip" | "brotli" | "both" | "gzip-clear" | "brotli-clear" | "both-clear"; declare interface ViteEnv { VITE_PORT: number; VITE_PUBLIC_PATH: string; VITE_PROXY_DOMAIN: string; VITE_PROXY_DOMAIN_REAL: string; VITE_ROUTER_HISTORY: string; VITE_LEGACY: boolean; VITE_CDN: boolean; VITE_COMPRESSION: ViteCompression; } declare interface ServerConfigs { Version?: string; Title?: string; FixedHeader?: boolean; HiddenSideBar?: boolean; MultiTagsCache?: boolean; KeepAlive?: boolean; Locale?: string; Layout?: string; Theme?: string; DarkMode?: boolean; Grey?: boolean; Weak?: boolean; HideTabs?: boolean; SidebarStatus?: boolean; EpThemeColor?: string; ShowLogo?: boolean; ShowModel?: string; MapConfigure?: { amapKey?: string; options: { resizeEnable?: boolean; center?: number[]; zoom?: number; }; }; } declare interface GlobalPropertiesApi { $echarts: ECharts; $storage: ResponsiveStorage; $config: ServerConfigs; } function parseInt(s: string | number, radix?: number): number; function parseFloat(string: string | number): number; namespace JSX { // tslint:disable no-empty-interface type Element = VNode; // tslint:disable no-empty-interface type ElementClass = ComponentRenderProxy; interface ElementAttributesProperty { $props: any; } interface IntrinsicElements { [elem: string]: any; } interface IntrinsicAttributes { [elem: string]: any; } } }