/// <reference types="node" />
import { WebLogCache } from '.';
import { ZegoLogStrategy, Logger } from '../../zego.entity';
import { ConfigState } from '../common/config.state';
import { SpeedUtil } from '../../../util/speedUtil';
export declare class NetworkContext {
    private _cache;
    private _configState;
    private _innerLogger;
    private _proxyCtrl?;
    private _websocket;
    private _websocketState;
    private _lastWsState;
    private _senderBuilder;
    private _sender;
    private _hasAuth;
    _zgp_speedCount: SpeedUtil;
    enableCache: boolean;
    get speed(): number;
    constructor(_cache: WebLogCache, _configState: ConfigState, _innerLogger: Logger, _proxyCtrl?: any);
    get url(): string;
    set url(v: string);
    get strategy(): ZegoLogStrategy;
    setStrategy(strategy: ZegoLogStrategy): void;
    addRemoteWsLog(log: string): void;
    stopWebSocketServer(): void;
    private _updateSender;
    private _updateWebSocketState;
    onSocketConnect(): void;
    onSocketClose(): void;
    onSocketError(): void;
    onHeartBeatTimeout(): void;
    _socketTimer: NodeJS.Timeout | number | null;
    enabled: boolean;
    openWebSocketLogServer(url: string, immediately?: boolean, force?: boolean, delay?: number): void;
    resetSocketTimer(): void;
    closed(): boolean;
    connected(): boolean;
    connecting(): boolean;
    get canSendWs(): boolean;
    sendLogFrame(log: string): Promise<boolean>;
    seq: number;
    makeLogFrame(log: string): Promise<Uint8Array>;
    /**
     * 组装日志上报的包内容
     * @param seq
     * @param cmd 7 为详细日志，5 为心跳包
     * @param data
     * @returns
     */
    private _zgp_assembleMessage;
    private _zgp_handlePushMessage;
    clearLogCacheAndUpload(): void;
    private _zgp_lastRecvMsgTime?;
    private checkHbTimer?;
    private clearHbTimer;
    private startHbTimer;
    setUpBitrate(bitrate: number): ZegoLogStrategy;
    destroy(): void;
}
