import { EventType, IOptions, IData, IListenParams } from './es/types/base.js'; import { IDeviceInfo } from './es/types/global.js'; /** * 埋点上报类 */ declare class ZmdmsTrack { static EventType: typeof EventType; /** 外部不要操作这个变量 */ private __remove__listeners__; private options; private storage; private queue; private isProcessing; private PV_URL_SET; private currentRetryNum; private removeRetryTimer; constructor(options: IOptions); /** * 解析外部传入的参数,得到 options */ parseOptions(options: IOptions): Required; /** * 修改options.basicInfo的配置 */ updateBasicInfo(basicInfo?: Partial): void; /** * 生成上报数据 */ createData(data: IData): IData; /** * 上报数据 */ send(data: IData | IData[]): Promise; /** * 添加上报数据 */ add(data: IData): Promise; processQueue(): Promise; /** * 直接上报数据 */ report(data: IData): void; /** * 解析默认请求参数 */ parseBasicInfo(basicInfo?: IOptions["basicInfo"]): { [x: string]: any; system?: string | number | undefined; systemName?: string | undefined; client?: string | undefined; appName?: string | undefined; appVersion?: string | undefined; offlineVersion?: string | undefined; userCode?: string | number | undefined; createBy?: string | undefined; navigator?: string | undefined; runtimeInfo?: Partial | undefined; }; /** * 解析上报请求相关参数 */ parseReport(report?: IOptions["report"]): { url?: string | undefined; reportType?: "http" | "beacon" | undefined; headers?: Record | undefined; format?: ((data: IData[]) => IData[]) | undefined; customReport?: ((data: IData[]) => Promise) | undefined; isReport?: ((data: IData[]) => boolean) | undefined; nonHttpMethod?: ((options: any) => Promise) | undefined; }; /** * 监听 */ addListen(listenParams: IListenParams): () => void; /** * 移除监听 */ removeListen(): void; /** * 通常默认情况下PV取值是当前的location.href即可。 * 但是在单页应用中,我们要记录PV的值,就需要监听:hashchange、popstate...等事件 * 但是在Vue中有个奇怪的现象(qiankun中),vue-router使用的是hash模式; * 但是页面跳转时,触发的事件是pushstate事件。并且触发事件时的location.href是跳转之前的值。 * 即触发事件时,跳转还未完成。所以routeUrl不能一味的取值location.href,这里PV的产生直接主动传递routeUrl会更加准确 * @param url pv产生的地址 * @returns */ pv(url?: string): void; uv(): Promise; /** * 数据初始化 */ private init; log(msg: any, type?: "log" | "error" | "group" | "groupEnd"): void; } export { ZmdmsTrack as default };