import { EventEmitterProxy } from 'events-constructor'; import { ApiManager } from '../ApiManager'; import { CallManager } from '../CallManager'; import { IBalancerOptions } from '../VideoSendingBalancer/types'; import { TEventMap } from './events'; type TOptions = IBalancerOptions & { balancingStartDelay?: number; }; /** * Менеджер для управления VideoSendingBalancer * Автоматически запускает балансировку через 10 секунд после начала звонка */ declare class VideoSendingBalancerManager extends EventEmitterProxy { isBalancingActive: boolean; private readonly callManager; private readonly balancingStartDelay; private readonly videoSendingBalancer; private startBalancingTimer?; constructor(callManager: CallManager, apiManager: ApiManager, balancerOptions: TOptions); /** * Проверить, запланирован ли запуск балансировки */ get isBalancingScheduled(): boolean; /** * Принудительно запустить балансировку */ startBalancing(): Promise; /** * Остановить балансировку */ stopBalancing(): void; /** * Выполнить ручную балансировку */ balance(): Promise; private subscribe; private readonly handleCallStarted; private readonly handleCallEnded; private readonly handleRecvSessionStarted; private readonly handleRecvSessionEnded; private readonly handleRecvQualityChanged; private scheduleBalancingStart; private clearStartTimer; } export default VideoSendingBalancerManager;