import type { BaseEvent, EventLevel, EventType, ClickEvent, CustomUserEvent, LifecycleEvent, CustomErrorEvent, ApiCallEvent, HttpBaseInfo, HttpResponse } from './type';
/**
 * 生成唯一ID，由于不同事件触发都是异步的，用于后续上报前进行排序，保证上报顺序
 * @returns
 */
export declare const generateId: () => string;
/**
 * 获取当前页面路径，小程序 通过 getCurrentPages，网页通过 location 对象
 * @returns
 */
export declare const getCurPage: () => string;
/**
 * 生成基础信息
 * @param eventType 事件类型
 * @param eventLevel 事件级别
 * @returns
 */
export declare const generateBaseEvent: <T extends EventType>(eventType: T, eventLevel?: EventLevel) => {
    eventId: string;
    eventType: T;
    eventLevel: EventLevel;
    stime: number;
    pageUrl: string;
    fullUrl: string;
};
/**
 * 生成点击事件
 * @param options.eventLevel 事件级别
 * @param options.elementText 元素文本
 * @param options.elementName 元素名称
 * @param options.elementProps 元素属性
 * @param options.elementDetail 元素详情
 */
export declare const generateClickEvent: (options: Omit<ClickEvent, keyof BaseEvent> & {
    eventLevel: EventLevel;
}) => {
    elementText: string;
    elementName: string;
    elementProps: string | Record<string, any> | undefined;
    elementDetail: string | Record<string, any> | undefined;
    eventId: string;
    eventType: "click";
    eventLevel: EventLevel;
    stime: number;
    pageUrl: string;
    fullUrl: string;
};
/**
 * 生成 API 信息
 * @param options.eventLevel 事件级别
 * @param options.apiBaseInfo 基础信息
 * @param options.apiName API 名称
 * @param options.apiArgs API 参数
 * @param options.apiStatus API 状态
 * @param options.apiResponse API 响应
 */
export declare const generateApiCallEvent: (options: Omit<ApiCallEvent, keyof BaseEvent | "duration" | "etime"> & {
    eventLevel: EventLevel;
    apiBaseInfo: BaseEvent;
}) => {
    eventLevel: EventLevel;
    eventType: "api";
    etime: number;
    apiName: string;
    apiArgs: string;
    apiStatus: "success" | "fail" | "complete" | undefined;
    apiResponse: string;
    duration: number;
    eventId: string;
    stime: number;
    extra?: Record<string, any>;
    pageUrl?: string;
    fullUrl?: string;
};
/**
 * 生成 HTTP 信息
 * @param options.eventLevel 事件级别
 * @param options.httpBaseInfo 基础信息
 * @param options.otherOptions 其他选项
 * @param options.response 响应
 */
export declare const generateHttpEvent: <T extends EventType>(options: {
    eventLevel: EventLevel;
    httpBaseInfo: BaseEvent<T>;
    otherOptions: Partial<HttpBaseInfo>;
    response: Partial<HttpResponse>;
}) => {
    eventLevel: EventLevel;
    eventType: "http";
    method: "GET" | "POST" | "PUT" | "DELETE" | "OPTIONS" | "HEAD" | "TRACE" | "CONNECT";
    requestUrl: string;
    params: string;
    headers: string;
    body: string;
    statusCode: number;
    etime: number;
    timeout: number;
    duration: number;
    eventId: string;
    stime: number;
    extra?: Record<string, any>;
    pageUrl?: string;
    fullUrl?: string;
};
/**
 * 生成生命周期事件
 * @param options.eventLevel 事件级别
 * @param options.lifecycleStage 生命周期阶段
 * @param options.lifecycleOption 生命周期选项
 */
export declare const generateLifecycleEvent: (options: Omit<LifecycleEvent, keyof BaseEvent> & {
    eventLevel: EventLevel;
}) => {
    lifecycleStage: import("./type").LifecycleStage;
    lifecycleOption: string | Record<string, any> | undefined;
    eventId: string;
    eventType: "lifecycle";
    eventLevel: EventLevel;
    stime: number;
    pageUrl: string;
    fullUrl: string;
};
/**
 * 生成自定义事件
 * @param options.eventLevel 事件级别
 * @param options.customName 自定义名称
 * @param options.customData 自定义数据
 */
export declare const generateCustomUserEvent: (options: Omit<CustomUserEvent, keyof BaseEvent> & {
    eventLevel: EventLevel;
}) => {
    customName: string;
    customData: Record<string, any> | undefined;
    eventId: string;
    eventType: "custom";
    eventLevel: EventLevel;
    stime: number;
    pageUrl: string;
    fullUrl: string;
};
/**
 * 生成错误事件
 * @param options.eventLevel 事件级别
 * @param options.errType 错误类型
 * @param options.errMsg 错误消息
 * @param options.stackTrace 堆栈跟踪
 * @param options.errExtraData 错误额外数据
 */
export declare const generateCustomErrorEvent: (options: Omit<CustomErrorEvent, keyof BaseEvent> & {
    eventLevel: EventLevel;
}) => {
    errType: "error" | "onUnhandledRejection";
    errMsg: string;
    stackTrace: string;
    errExtraData: Record<string, any> | undefined;
    eventId: string;
    eventType: "error";
    eventLevel: EventLevel;
    stime: number;
    pageUrl: string;
    fullUrl: string;
};
