import { ConnectivityCheckResult, ConnectivityState, HMSDiagnosticsConnectivityListener } from './interfaces';
import { RTCIceCandidatePair } from '../connection/IConnectionObserver';
import { HMSConnectionQuality, HMSException, HMSRoom, HMSTrack, HMSTrackUpdate, HMSUpdateListener } from '../internal';
import { HMSSdk } from '../sdk';
import { HMSPeer } from '../sdk/models/peer';
export declare class ConnectivityCheck implements HMSDiagnosticsConnectivityListener {
    private sdk;
    private sdkListener;
    private progressCallback;
    private completionCallback;
    private connectivityDuration;
    private wsConnected;
    private websocketURL?;
    private initConnected;
    private isPublishICEConnected;
    private isSubscribeICEConnected;
    private selectedPublishICECandidate?;
    private selectedSubscribeICECandidate?;
    private gatheredPublishICECandidates;
    private gatheredSubscribeICECandidates;
    private errors;
    private isAudioTrackCaptured;
    private isVideoTrackCaptured;
    private isAudioTrackPublished;
    private isVideoTrackPublished;
    private statsCollector;
    private cqsCalculator;
    private cleanupTimer?;
    private timestamp;
    private _state?;
    private get state();
    private set state(value);
    constructor(sdk: HMSSdk, sdkListener: HMSUpdateListener, progressCallback: (state: ConnectivityState) => void, completionCallback: (state: ConnectivityCheckResult) => void, connectivityDuration?: number);
    onRoomUpdate: (type: import("../internal").HMSRoomUpdate, room: HMSRoom) => void;
    onPeerUpdate: (type: import("../internal").HMSPeerUpdate, peer: HMSPeer | HMSPeer[] | null) => void;
    onMessageReceived: (message: import("../notification-manager").MessageNotification) => void;
    onReconnected: () => void;
    onRoleChangeRequest: (request: import("../internal").HMSRoleChangeRequest) => void;
    onRoleUpdate: (newRole: string) => void;
    onChangeTrackStateRequest: (request: import("../internal").HMSChangeTrackStateRequest) => void;
    onChangeMultiTrackStateRequest: (request: import("../internal").HMSChangeMultiTrackStateRequest) => void;
    onRemovedFromRoom: (request: import("../internal").HMSLeaveRoomRequest) => void;
    onNetworkQuality: ((score: number) => void) | undefined;
    onPreview: (room: HMSRoom, localTracks: HMSTrack[]) => void;
    onDeviceChange: ((event: import("../internal").HMSDeviceChangeEvent) => void) | undefined;
    onSessionStoreUpdate: (values: import("../internal").SessionStoreUpdate[]) => void;
    onPollsUpdate: (type: import("../internal").HMSPollsUpdate, polls: import("../internal").HMSPoll[]) => void;
    onWhiteboardUpdate: (whiteboard: import("../internal").HMSWhiteboard) => void;
    handleConnectionQualityUpdate: (qualities: HMSConnectionQuality[]) => void;
    onICESuccess(isPublish: boolean): void;
    onSelectedICECandidatePairChange(candidatePair: RTCIceCandidatePair, isPublish: boolean): void;
    onICECandidate(candidate: RTCIceCandidate, isPublish: boolean): void;
    onMediaPublished(track: HMSTrack): void;
    onInitSuccess(websocketURL: string): void;
    onSignallingSuccess(): void;
    onJoin(room: HMSRoom): void;
    onError(error: HMSException): void;
    onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer): void;
    onReconnecting(error: HMSException): void;
    cleanupAndReport(): void;
    private buildReport;
}
