import type { AntomWebSDKIntegrationType } from '../loader/constant';
interface LogPayload {
    title?: string;
    msg?: string;
    name?: string;
    label?: string;
    time?: number;
    success?: boolean;
    code?: string;
    traceId?: string;
}
type Extra = Record<string, any>;
export interface LogMetaData {
    platform?: string;
    sdkVersion?: string;
    webAppVersion?: string;
    firstLogTime?: number;
    fsDuration?: number;
    instanceId?: string;
    deviceId?: string;
    renderDisplayType?: string;
    merchantId?: string;
    productScene?: string;
    productSceneVersion?: string;
    paymentMethodType?: string;
    paymentMethodCategoryType?: string;
    requestSeq?: string;
    trackId?: string;
    integrationType?: AntomWebSDKIntegrationType;
}
interface Config {
    scriptUrl: string;
    spmConfig: object;
    appId: string;
    server?: string;
    bizType: string;
    batchCount: number;
    productId: string;
    mdata?: LogMetaData;
    version?: string;
}
export declare class Logger {
    private logs;
    private config;
    private debug;
    private componentStartTime;
    private isLoaded;
    private static instance;
    private trackId;
    constructor(config: Config, debug: boolean);
    static setInstance(instance: Logger): Logger;
    static getInstance(): Logger;
    setMedta(mdata: LogMetaData): void;
    logError(error: LogPayload, extra?: Extra, enableExtractCompliance?: boolean): Logger;
    logInfo(info: LogPayload, extra?: Extra): Logger;
    reportRPC(rpcData: LogPayload, extra?: Extra): Logger;
    reportLogs(): void;
    loadScript(url: string, callback: () => void): void;
    private fallbackLoadScript;
    initTracker(): void;
    send(): void;
    setComponentStartTime(val: number): void;
    setTrackId(trackId: string): void;
    getComponentStartTime(): number;
}
export declare const LogConfig: Config;
export {};
