import type { ComponentRenderProxy, VNode, VNodeChild, ComponentPublicInstance, FunctionalComponent, PropType as VuePropType, } from 'vue'; declare global { const __APP_INFO__: { pkg: { name: string; version: string; dependencies: Recordable; devDependencies: Recordable; }; lastBuildTime: string; }; // declare interface Window { // // Global vue app instance // __APP__: App; // } // fix FullScreen type error interface Document { mozFullScreenElement?: Element; msFullscreenElement?: Element; webkitFullscreenElement?: Element; } // vue declare type PropType = VuePropType; declare type VueNode = VNodeChild | JSX.Element; export type Writable = { -readonly [P in keyof T]: T[P]; }; declare type Nullable = T | null; declare type NonNullable = T extends null | undefined ? never : T; declare type Recordable = Record; declare type ReadonlyRecordable = { readonly [key: string]: T; }; declare type Indexable = { [key: string]: T; }; declare type DeepPartial = { [P in keyof T]?: DeepPartial; }; declare type TimeoutHandle = ReturnType; declare type IntervalHandle = ReturnType; declare interface ChangeEvent extends Event { target: HTMLInputElement; } declare interface WheelEvent { path?: EventTarget[]; } interface ImportMetaEnv extends ViteEnv { __: unknown; } declare interface ViteEnv { VITE_PUBLIC_PATH: string; VITE_GLOB_APP_TITLE: string; VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none'; // Site title VITE_GLOB_APP_TITLE: string; // Service interface url VITE_GLOB_API_URL: string; // # 全局加密开关(即开启了加解密功能才会生效 不是全部接口加密 需要和后端对应) VITE_GLOB_ENABLE_ENCRYPT: string; // RSA请求加密公钥 VITE_GLOB_RSA_PUBLIC_KEY: string; // RSA请求解密私钥 VITE_GLOB_RSA_PRIVATE_KEY: string; // 客户端ID VITE_GLOB_APP_CLIENT_ID: string; // 是否开启websocket 注意从配置文件获取的类型为string VITE_GLOB_WEBSOCKET_ENABLE: string; } declare function parseInt(s: string | number, radix?: number): number; declare 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; } } } declare module 'vue' { export type JSXComponent = | { new (): ComponentPublicInstance } | FunctionalComponent; export interface GlobalComponents { /** * 二次封装button类型定义 */ AButton: (typeof import('../src/components/Button/src/BasicButton.vue'))['default']; } }