import type { RouteRecordRaw } from 'vue-router'; import { type Viewer } from 'sy-cesium-sdk'; import { type defineComponent } from 'vue'; declare global { declare interface EventBus { $emit(eventName: string, ...args: any[]): void; $on(eventName: string, callback: Fn): void; $off(eventName: string): void; $all_off(): void; } declare let viewer: Viewer; declare interface Window { viewer: Viewer; createObjectURL: any; $bus: EventBus; } type Fn = (...arg: T[]) => T; declare type Nullable = T | null; declare type ElRef = Nullable; declare type Recordable = Record< K extends null | undefined ? string : K, T >; declare type ComponentRef = InstanceType; declare type AxiosHeaders = | 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data'; declare type AxiosMethod = 'get' | 'post' | 'delete' | 'put'; declare type AxiosResponseType = | 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'; declare interface AxiosConfig { params?: any; data?: any; url?: string; method?: AxiosMethod; headersType?: string; responseType?: AxiosResponseType; } declare interface IResponse { code: string; data: T extends any ? T : T & any; } type Component = | ReturnType | (() => Promise) | (() => Promise); declare interface AppRouteRecordRaw extends Omit { name: string; component?: Component | string; children?: AppRouteRecordRaw[]; props?: Recordable; fullPath?: string; caseName?: string; } declare interface MenuRecordRaw { code: string; id: string; menuVisible: boolean; name: string; parentFuncId: string; type: string; funcInvokeUrl?: string; iconClass: ?string; orderNm: ?number; widgetType?: string; smallImgPath?: string; childrenList?: MenuRecordRaw[]; } // 通讯事件参数 declare interface PostMessage { eventName: string; eventId: string; argumentType?: string; arguments?: Record; } declare interface MarkerRecord {} declare interface MarkerType { id: string; iconcode: string; name: string; icons?: any[]; color?: string; data?: any[]; properties: string[]; } declare interface FusionVideoOption { videoSource: string; videoUrl?: string; showFrustum: boolean; heading: number; pitch: number; roll: number; far: number; near: number; vertical: number; horizontal: number; featherValue?: number; cameraPosition: { lat: number; lng: number; alt: number; }; alpha: number; showTag?: boolean; deviceIndex?: string; } declare interface VideoFusionRecord { id?: string; name?: string; videoPlay?: boolean; videoOption?: FusionVideoOption; isDefaultShow?: boolean; thumbnail?: string; dirId?: string; } } export {};