import { SpanEvent } from "./events/span/span"; import { ICommonLog, IBrowserLog, ILog, IBaseLog } from "./log"; import { EventType } from "./events"; import { CustomEvent } from "./events/custom"; import { BaseEvent } from "./events/base"; export interface IBaseTrackOptions { commonLog: ICommonLog; url: string; } export declare abstract class BaseTrack { static registerEvent: import("./events/register").IRegisterEventFn; registerEvent(eventName: string, EventClass: typeof BaseEvent): void; _version: string; commonLog: ICommonLog | null; browserLog: IBrowserLog | null; get groupid(): string | undefined; options: IBaseTrackOptions; constructor(options: IBaseTrackOptions); runEventInitHooks(): void; runEventStartHooks(): void; runEventDestroyHooks(): void; get anonymousid(): string | undefined; get distinctid(): string | undefined; get baseLog(): IBaseLog; initCommonLog(commonLog: ICommonLog): void; createEventLog(type: EventType, createTimestamp?: number): ILog; addLogByType(type: EventType, createTimestamp?: number): void; addLogByEvent(event: BaseEvent, createTimestamp?: number): void; createCustomEvent(customType: string): CustomEvent; createSpanEvent(spanName: string, parentspanid?: string): SpanEvent; addLogByCustomEvent(customType: string, property?: Record, createTimestamp?: number): void; executeInitEvent(): void; updateCommonLog(options: Record): void; trackEvent(type: EventType, property?: Record, createTimestamp?: number): void; /** * 采集机制,需要重写 */ start(...args: any): void; destroy(): void; /** * 对外可以复写,更改日志信息。 * @param log * @returns */ transformLog(log: ILog): ILog; /** 将日志添加到发送队列 需要重写 * @param log 日志对象 * @param isImmediate 是否立刻发送 */ addLogToQueue(log: ILog, isImmediate?: boolean, needTransform?: boolean): Promise; /** * 发送日志 需要重写 * @param log 日志 * @param isImmediate 是否马上提交 */ abstract sendLog(log: ILog, isImmediate?: boolean): Promise; }