import { RTCSession, RenegotiateOptions } from '@krivega/jssip'; import { TEvents } from './events'; import { IMCUSession } from './types'; export type TRestartIceOptions = RenegotiateOptions; export declare class MCUSession implements IMCUSession { protected readonly events: TEvents; protected rtcSession?: RTCSession; private readonly disposers; private pcConfig?; private localMediaStream?; private readonly bitrateStateManager; constructor(events: TEvents); get connection(): RTCPeerConnection | undefined; get isCallActive(): boolean; getEstablishedRTCSession: () => RTCSession | undefined; getPcConfig(): { iceServers?: RTCIceServer[]; } | undefined; renegotiate(): Promise; startCall: IMCUSession['startCall']; endCall(): Promise; answerToIncomingCall: IMCUSession['answerToIncomingCall']; replaceMediaStream(mediaStream: Parameters[0], options?: Parameters[1]): Promise; restartIce(options?: TRestartIceOptions): Promise; /** * Устанавливает минимальный битрейт для указанных типов потоков * @param kinds - типы потоков ('audio' | 'video' | 'all') */ setMinBitrateForSenders(kinds?: 'audio' | 'video' | 'all'): void; /** * Восстанавливает предыдущий битрейт для указанных типов потоков * @param kinds - типы потоков ('audio' | 'video' | 'all') */ restoreBitrateForSenders(kinds?: 'audio' | 'video' | 'all'): void; readonly reset: () => void; private readonly handleCall; private subscribeToSessionEvents; private unsubscribeFromSessionEvents; private readonly handleEnded; }