import { JingleReasonCondition } from 'stanza/Constants'; import { JingleReason } from 'stanza/protocol'; import { ConnectionState, IGenesysCloudMediaSessionParams, IMediaSession, SessionState } from './media-session'; import { WebrtcExtension } from '../webrtc'; import { SessionTypes } from './interfaces'; export interface GenesysCloudMediaSession extends IMediaSession { } export declare class GenesysCloudMediaSession { private webrtcExtension; private statsGatherer?; private iceCandidatesDiscovered; private iceCandidatesReceivedFromPeer; private interruptionStart?; private logger; private stateSyncTimeout?; conversationId: string; id: string; fromJid: string; peerID: string; peerConnection: RTCPeerConnection; fromUserId?: string; originalRoomJid?: string; sessionType: SessionTypes; ignoreHostCandidatesFromRemote: boolean; allowIPv6: boolean; allowTCP: boolean; dataChannel?: RTCDataChannel; state: SessionState; connectionState: ConnectionState; privAnswerMode?: 'Auto'; constructor(webrtcExtension: WebrtcExtension, params: IGenesysCloudMediaSessionParams); private keepStateInSyncWithPeerConnection; setRemoteDescription(sdp: string): Promise; private getLogDetails; private log; private sendGenesysWebrtc; end(reason?: JingleReasonCondition | JingleReason, silent?: boolean): Promise; setupStatsGatherer(): void; protected onIceStateChange(): Promise; protected onConnectionStateChange(): void; protected onIceCandidateError(ev: Event): void; private createIceCandidate; addRemoteIceCandidate(sdpFragment: string): Promise; protected onIceCandidate(e: RTCPeerConnectionIceEvent): Promise | undefined; onSessionTerminate(reason?: JingleReasonCondition): void; addTrack(track: MediaStreamTrack, stream?: MediaStream): Promise; protected _setupDataChannel(): void; _handleDataChannelMessage(event: MessageEvent): void; accept(): Promise; mute(userId: string, type: 'audio' | 'video'): Promise; unmute(userId: string, type: 'audio' | 'video'): Promise; removeTrack(): Promise; hold(): Promise; resume(): Promise; toString(): { connectionState: ConnectionState; state: SessionState; sessionType: SessionTypes; fromJid: string; conversationId: string; id: string; peerConnection: RTCPeerConnection; }; }