import type EnhancedEventEmitter from '../EnhancedEventEmitter'; import type { LogLevel, LogMessageHandler } from './common'; import type { IssuesHandler, NetworkScoresUpdatedHandler } from './engine'; import type { InitEffectsSDKParams } from './media'; /** * Параметры инициализации основного клиента SDK. * * Через этот объект приложение настраивает подключение к сигналингу, сбор * диагностических данных, обработчики качества связи и интеграцию с эффектами. */ export interface ClientParams { /** * Выбирает движок шумоподавления для микрофонных треков. * * Используйте `asdk`, если хотите подключить внешний AI-движок, или `rnnoise` * для встроенного варианта без дополнительной интеграции. */ denoiser?: 'rnnoise' | 'asdk'; /** * Настройки интеграции с Audio Effects SDK для продвинутого шумоподавления. */ asdk?: { /** Идентификатор клиента, выданный поставщиком Audio Effects SDK. */ customerId?: string; /** Версия ASDK-ресурсов, которые должно использовать приложение. */ version?: '2.3.5'; /** Локальный каталог, из которого приложение раздаёт ASDK-ресурсы. */ localDir?: string; /** Явный URL SDK-ресурсов ASDK, если используется кастомная схема доставки. */ sdk_url?: string; /** URL API ASDK, если интеграция должна работать через отдельный endpoint. */ api_url?: string; }; /** Позволяет передать собственный emitter, если приложение централизует обработку клиентских событий. */ clientEventEmitter?: EnhancedEventEmitter; /** Внутренний emitter SDK для продвинутых интеграций и отладки. Обычно передавать не требуется. */ internalEventEmitter?: EnhancedEventEmitter; /** Переопределяет адрес signaling-сервера, к которому будет подключаться клиент. */ signalingServerUrl?: string; /** Задаёт минимальный уровень подробности внутренних логов SDK. */ logLevel?: LogLevel; /** Позволяет перехватить внутренние сообщения SDK и встроить их в ваш логгер. */ onLogMessage?: LogMessageHandler; /** Вызывается, когда SDK обнаруживает сетевые или медийные проблемы качества. */ onIssues?: IssuesHandler; /** Вызывается при обновлении агрегированных сетевых оценок качества. */ onNetworkScoresUpdated?: NetworkScoresUpdatedHandler; /** Интервал опроса статистики WebRTC в миллисекундах. По умолчанию: 1000 мс. */ getStatsInterval?: number; /** Отключает детектор проблем WID, если приложение хочет обрабатывать это самостоятельно. */ disableWid?: boolean; /** Общие параметры инициализации движка видеоэффектов. */ effectsSDKParams?: InitEffectsSDKParams; /** Включает отправку аналитических данных SDK на серверные endpoint'ы. */ sendAnalytics?: boolean; /** Базовый путь к локально раздаваемым статическим ресурсам эффектов и WASM. */ staticFilesPath?: string; /** Переопределяет адрес API аналитики, если используется отдельная инфраструктура. */ analyticsApiUrl?: string; }