import { ZegoLog } from './model';
import { ConfigState } from '../common';
export declare class ZipLogStorageContext {
    private _configState;
    private proxyCtrl?;
    private _dbSaver;
    private _logModel;
    private _dbOpened;
    private _dbTryOpen;
    private _cache;
    private _activating;
    private _dbTaskQueue;
    private _uploadTaskQueue;
    private _zipLogUploader;
    private _zipLogBuilder;
    private _zipLogEnabled;
    private _userLastUploadTime;
    private _userLastUploadSuccess;
    private _userUploading;
    constructor(_configState: ConfigState, proxyCtrl?: any);
    get dbOpened(): boolean;
    get dbTryOpened(): boolean;
    /**
     * 删除日志，预留足够多用于存储
     */
    private _makeStorageSpace;
    /**
     * 清除持久化的日志并上报（日志）
     */
    makeStorageSpaceUpload(): Promise<void>;
    openDB(): Promise<void>;
    private _shouldOpenDB;
    enable(): void;
    /**
     * 普通日志
     * @param log debug、info、warn、error log
     */
    saveLog(log: string): void;
    removeLogList(logList: ZegoLog[]): Promise<void>;
    empty(): Promise<boolean>;
    /**
     * 如果云控开启 zip_log, 全部缓存日志存入 indexDB；没有开启则依旧保留在cache.queue中
     * @returns
     */
    private _activeSaving;
    static isEnvSupport(): boolean;
    /**单次上报3w行 */
    private _uploadTask;
    /**
     * 将 indexDB 中的所有日志进行压缩和上报，并从indexDB删除
     * SDK 内部发起
     */
    private _startASdkUploadTask;
    /**
     * 将 indexDB 中的所有日志进行压缩和上报，并从indexDB删除
     * 用户调接口触发内部发起
     */
    private _startAUserUploadTask;
    setUploadUrl(url: string): void;
    /**
     * 用户控制开始上传当前缓存的日志
     */
    startUpload(): Promise<void>;
    destroy(): void;
}
