import type Logger from '../../../../Logger'; import type { LtOptions } from './components/lower-third/lowerThird'; import type { tsvb } from './tsvb'; import type { ErrorObject } from './utils/errorBus'; import type ConfigService from '../../../../../config/ConfigService'; export declare enum ErrorType { INFO = "info", WARNING = "warning", ERROR = "error" } export declare enum ErrorEmitter { TSVB = "tsvb", COMPONENTS_SYSTEM = "components_system", SRTEAM_PROCESSOR = "stream_processor", ML_INFERENCE = "ml_inference", PRESET_INIT = "preset_init", RENDERER = "renderer", RECORDER = "recorder", EFFECT_VIRTUAL_BACKGROUND = "effect_virtual_background", EFFECT_COLOR_CORRECTION = "effect_color_correction", EFFECT_COLOR_FILTER = "effect_color_filter", EFFECT_SMART_ZOOM = "effect_smart_zoom", EFFECT_LOW_LIGHT = "effect_low_light" } export type LayoutTypes = 'center' | 'left-bottom' | 'right-bottom'; export type LowerThirdTypes = 'lowerthird_1' | 'lowerthird_2' | 'lowerthird_3' | 'lowerthird_4' | 'lowerthird_5'; /** * Набор визуальных эффектов, который можно применить к локальному видеотреку. * * Подходит для background blur, замены фона, базовой beautification-обработки * и оверлеев вроде lower third. * * @example * ```ts * await videoTrack.applyEffects({ * blur: 0.6, * beautification: 0.3, * colorFilter: { * url: '/filters/warm.cube', * power: 0.4, * }, * }); * ``` */ export interface Effects { /** Сила размытия фона за спиной пользователя. */ blur?: number; /** URL или идентификатор изображения, которое будет использовано как виртуальный фон. */ background?: string; /** Сплошной цвет фона в числовом формате, если нужен однотонный background вместо изображения. */ backgroundColor?: number; /** Интенсивность эффекта улучшения внешности и сглаживания изображения. */ beautification?: number; /** Интенсивность цветокоррекции для более выразительной картинки. */ colorCorrector?: number; /** Сила улучшения изображения при недостаточном освещении. */ lowLightEffect?: number; /** Размер области лица в кадре, который smart zoom старается удерживать в фокусе. */ smartZoom?: number; /** Положение пользователя в кадре при активных background-эффектах. */ layout?: LayoutTypes; /** LUT-фильтр для стилизации цветовой палитры видеопотока. */ colorFilter?: { /** Ссылка на LUT-ресурс фильтра. */ url: string; /** Интенсивность наложения LUT-фильтра. */ power: number; }; /** Конфигурация нижнего графического баннера поверх видео. */ lowerThird?: { /** Вариант шаблона lower third. */ type: LowerThirdTypes; /** Настройки выбранного шаблона lower third, например тексты и стили. */ options?: LtOptions; }; /** Интенсивность повышения резкости изображения. */ sharpness?: number; } interface VideoTrackProcessorParams { loggerFactory: (namespace: string) => Logger; customerId?: string; sdk_url?: string; api_url?: string; config: ConfigService; onModelsLoaded?: () => void; } declare global { interface Window { tsvb: typeof tsvb; } } export default class EffectsSDKTrackProcessor { #private; constructor(params: VideoTrackProcessorParams); init(): Promise; awaitReady(): Promise; setOnRuntimeError(callback: (error: ErrorObject) => void): void; private tsvbErrorHandler; get isModelsLoaded(): boolean; get modelsLoadProgress(): number; get isReady(): boolean; setOnLoadModels(callback: () => void): void; onReady(): void; processTrack(track: MediaStreamTrack): MediaStreamTrack; stopProcessing(): void; updateEffects(effects?: Effects): void; } export {};