import { ApiManager } from '../ApiManager'; import { TResultSetParametersToSender } from '../tools'; import { IBalancerOptions } from './types'; /** * Контроллер/фасад для балансировки видеопотоков * Координирует работу обработчика событий, балансировщика и очереди задач */ declare class VideoSendingBalancer { private readonly eventHandler; private readonly senderBalancer; private readonly parametersSetterWithQueue; private readonly getConnection; private serverHeaders?; private readonly trackMonitor; constructor(apiManager: ApiManager, getConnection: () => RTCPeerConnection | undefined, { ignoreForCodec, onSetParameters, pollIntervalMs, getMaxResolution, }: IBalancerOptions & { pollIntervalMs?: number; }); /** * Подписывается на события управления главной камерой */ subscribe(): void; /** * Отписывается от событий и сбрасывает состояние */ unsubscribe(): void; /** * Сбрасывает состояние балансировщика и восстанавливает параметры отправителя */ reset(): void; /** * Выполняет балансировку на основе текущего состояния * @returns Promise с результатом балансировки */ balance(): Promise; private clearState; /** * Обработчик событий управления главной камерой * @param headers - Заголовки от сервера */ private readonly handleMainCamControl; } declare const resolveVideoSendingBalancer: (apiManager: ApiManager, getConnection: () => RTCPeerConnection | undefined, options: IBalancerOptions) => VideoSendingBalancer; export default VideoSendingBalancer; export { resolveVideoSendingBalancer };