import type { AudioTrackType } from '../types'; import { CallState } from '../store'; import { Tracer } from '../stats'; /** * Tracks audio element bindings and periodically warns about * remote participants whose audio streams have no bound element. */ export declare class AudioBindingsWatchdog { private state; private tracer; private bindings; private enabled; private watchdogInterval?; private readonly unsubscribeCallingState; private logger; constructor(state: CallState, tracer: Tracer); /** * Registers an audio element binding for the given session and track type. * Warns if a different element is already bound to the same key. */ register: (audioElement: HTMLAudioElement, sessionId: string, trackType: AudioTrackType) => void; /** * Removes the audio element binding for the given session and track type. */ unregister: (sessionId: string, trackType: AudioTrackType) => void; /** * Enables or disables the watchdog. * When disabled, the periodic check stops but bindings are still tracked. */ setEnabled: (enabled: boolean) => void; /** * Stops the watchdog and unsubscribes from callingState changes. */ dispose: () => void; private start; private stop; }