import { ZegoLogger } from '../../src/common/zego.entity'; import { ZegoDataReport } from 'zego-express-logger'; declare class ReportSpan { private _dataReport; private _seq; constructor(_dataReport: ZegoDataReport, _seq: number); setAttributes(attributes: Record): void; setAttribute(key: string, value: any): void; end(immediately?: boolean): void; spanReport(): void; } export declare class ZReporter { private _zgp_logger; dataReport: ZegoDataReport; private _zgp_reportList; private _zgp_publicPros; private _zgp_apiErrReportMap; private _zgp_apiReportControllerMap; constructor(_zgp_logger: ZegoLogger); static setReportCustomerContext(contextID: number): void; /** * tracer 初始化 */ init(appID: number, ENV: number, deviceID: string): void; /** * 设置上报相关参数,例如上报地址在初始化时尚未获取到,可在获得地址后传入 * @param cfg */ setConfig(cfg: { bps?: number; totalDBSize?: number; serverUrl?: string; }): void; /** * 加载动态脚本 * @param isRemote 是否远端拉取的脚本 * @param url 脚本地址 * @param key 脚本 key * @param hash 脚本 hash,解密用 * @returns */ loadScript(isRemote: boolean, url: string, key: string, hash: string): Promise; /** * 设置上报关键信息,userID 和 token * @param userID * @param token */ setReporterInfo(userID: string, token: string): void; /** * 刷新上报 * @param cfg */ flush(cfg?: { bps: number; }): void; /** * 销毁 */ destroy(): void; /** * 设置持久状态数据,例如 roomID、流相关信息,以供脚本后续使用 * @param commonStates */ setCommonStates(commonStates: any): void; /** * 设置 SDK 版本信息等 * @param resource s */ setResource(resource: any): void; /** * 设置事件公共属性 * @param attributes */ setCommonAttributes(attributes: any): void; deleteCommonAttributes(attr: string[]): void; clearRoomSpans(roomIDs: string[]): void; /** * 设置 room_sid、stream_sid 等信息,在事件创建时统一加入 * @param pros */ setPublicPros(pros: Record): void; /** * 创建 span * @param level 事件等级,目前分两级,流开始、完整事件为高级,会立即缓存 * @param parent 事件树的父亲级别,key 是父 span 在数据表中的 key,bak_key 是当 key 不存在时的代替,par 则是二层 key,par1 是当 par 相同时的区分 * @param self span 自身在事件映射表中的 key,par 和 par1 则是 key 相同时的区分,如 roomID、streamID * @param name span 名称,即事件的 event 字段 * @param isMap 事件是否存入事件表 * @returns */ createSpan(level: number, parent: { key: string; bak_key?: string; par?: string; par1?: string; }, self: { key: string; par?: string; par1?: string; }, name: string, isMap?: boolean): ReportSpan; /** * 事件设置进事件表 * @param span * @param mapParams */ setSpanInMap(span: ReportSpan, mapParams: { key: string; par?: string; par2?: string; }): void; /** * 以事件表中 key 形式结束事件 * @param self * @param attributes 可设置属性 * @param reserve 是否保留在事件表中 */ spanEnd(self: { key: string; par?: string; par1?: string; }, attributes?: any, reserve?: boolean, immediately?: boolean): void; spanReport(self: { key: string; par?: string; par1?: string; }): void; /** * 以事件表形式设置属性 * @param self * @param attributes */ spanSetAttributes(self: { key: string; bak_key?: string; par?: string; par1?: string; }, attributes: any): void; /** * 事件表形式添加字段属性中的数组结构项,数组项类型需要一致 * @param self * @param key * @param value */ spanAppendAttribute(self: { key: string; bak_key?: string; par?: string; par1?: string; }, key: string, value: any): void; /** * 以 span 结束事件,可传入 error 信息 * @param span * @param error * @param externalMsg */ setError(span: any, error: any, externalMsg?: string): void; setLogger(_zgp_logger: any): void; setTimeOffset(offset: number): void; setUnloadState(level: number): void; setNetStateCheck(): void; setAPIErrorReport(eventName: string, freq: number): void; getAPIErrorReport(eventName: string): number | undefined; takeAPIErrorReport(eventName: string, err: { code: number; msg?: string; message?: string; }, freq?: number, attr?: any): void; } export {};