import { ENUM_REMOTE_TYPE, ZEGO_ENV, LOG_LEVEL_STR, DataStatisticsItem, LogExtendFields, LogConfig, ZegoLogStrategy } from './zego.entity';
import { LoggerStateCenter } from '../util/zego.stateCenter';
export declare const PROTO_VERSION: any;
export declare class ZegoLogger {
    private proxyCtrl?;
    static logVersion: any;
    logLevel: number;
    logRemoteLevel: number;
    stateCenter: LoggerStateCenter;
    logUploadTimer: any;
    logUploadInterval: number;
    timeInterval: number;
    existUserID: boolean;
    isDestroy: boolean;
    private _configState;
    private _logCache;
    private _logCacheMax;
    private _netContext?;
    private _zipLogContext?;
    private _zgp_retryConnectInterval;
    private _zgp_offlineConnectInterval;
    private _innerLogger;
    logConnected: boolean;
    tryIndex: number;
    urlIndex: number;
    urlTryMaxCount: number;
    wsConnectFailTime: number;
    urlGroups: {
        v4: string[];
        v6: string[];
    };
    get url(): string;
    set url(v: string);
    get logType(): ENUM_REMOTE_TYPE;
    set logType(v: ENUM_REMOTE_TYPE);
    get env(): ZEGO_ENV;
    set env(v: ZEGO_ENV);
    get appid(): number;
    set appid(v: number);
    get roomid(): string;
    set roomid(v: string);
    get sessionid(): string | undefined;
    set sessionid(v: string | undefined);
    get userid(): string;
    set userid(v: string);
    get version(): string;
    set version(v: string);
    get wsSpeed(): number;
    constructor(env: ZEGO_ENV, proxyCtrl?: any);
    /**
     *
     * 设置本地日志级别
     *
     * */
    setLogLevel(level: LOG_LEVEL_STR): boolean;
    /**
     *
     * 设置上报日志级别
     *
     * */
    setRemoteLogLevel(level: LOG_LEVEL_STR): boolean;
    setSessionInfo(appid: number, roomid: string, sessionid: string, userid: string, userName: string, version: string): void;
    setTokenInfo(token: string, userid?: string): void;
    /**
     * @param zipLog 是否开启 zipLog
     * @param force 是否强制执行（如果为 true，同时 zipLog = 0，将回收缓存的ZipLog资源）
     */
    setZipLogConfig(zipLog: number, force?: boolean): void;
    setStorageConfig(config: {
        size?: number;
        count?: number;
    }): void;
    /**
     * 设置上报ZipLog的域名
     */
    setZipLogDomains(urls: string[], v6Urls: string[]): void;
    /**
     * 清除持久化的日志并上报（日志）
     */
    makeZipLogSpaceUpload(): Promise<void>;
    uploadStorageLog(callByUser?: boolean): Promise<void>;
    report(dataItem: DataStatisticsItem): void;
    debug(value: string, fields?: LogExtendFields): void;
    info(value: string, fields?: LogExtendFields): void;
    warn(value: string, fields?: LogExtendFields): void;
    remoteReport(...values: string[]): void;
    error(value: string, fields?: LogExtendFields): void;
    private _log;
    setSettingConfig(logConfig: LogConfig): void;
    private getLogUrlsByIPStackMode;
    onConnected(rsp: {
        url: string;
    }): void;
    onUploadLog(fileSize: number, userid: string, error?: {
        code: number;
        message: string;
    }): void;
    setLogServer(urls: string[], v6Urls: string[]): boolean;
    private _stopLogServer;
    private _stopWebSocketServer;
    private _openHttpsLogServer;
    private _stopHttpsServer;
    private _remoteLog;
    clearCache(): void;
    private _remoteWebSocketLog;
    private _remoteHttpsLog;
    private _logParamList;
    private _logReportParamList;
    private _sendHttpsLog;
    private _sendHttpsLogWeb;
    SendHttpsLogWeChatMini(): void;
    inflate: Function;
    deflate: Function;
    private retryConnectSocket;
    private listener;
    reconnectLogServer(): void;
    setUploadStrategy(strategy: ZegoLogStrategy): void;
    setUpBitrate(bitrate: number): ZegoLogStrategy | undefined;
    enableWebSocketLog(enable: boolean, disableCahceOnDisable?: boolean): void;
    stopStorageLog(): Promise<boolean>;
    getWhiteList(product?: string, bizType?: number): Promise<any>;
    private get _enableWSLog();
    destroy(): void;
}
