import { HMSAudioTrack } from './HMSAudioTrack'; import { EventBus } from '../../events/EventBus'; import { HMSAudioTrackSettings as IHMSAudioTrackSettings } from '../../interfaces'; import { HMSAudioPlugin, HMSPluginSupportResult } from '../../plugins'; import { TrackAudioLevelMonitor } from '../../utils/track-audio-level-monitor'; import { HMSAudioTrackSettings } from '../settings'; import { HMSLocalStream } from '../streams'; export declare class HMSLocalAudioTrack extends HMSAudioTrack { private eventBus; private readonly TAG; settings: HMSAudioTrackSettings; private pluginsManager; private processedTrack?; private manuallySelectedDeviceId?; audioLevelMonitor?: TrackAudioLevelMonitor; /** * see the doc in HMSLocalVideoTrack * @internal */ publishedTrackId?: string; /** * will be false for preview tracks */ isPublished: boolean; constructor(stream: HMSLocalStream, track: MediaStreamTrack, source: string, eventBus: EventBus, settings?: HMSAudioTrackSettings); getManuallySelectedDeviceId(): string | undefined; resetManuallySelectedDeviceId(): void; private handleVisibilityChange; private replaceTrackWith; setEnabled(value: boolean): Promise; /** * verify if the track id being passed is of this track for correlating server messages like audio level */ isPublishedTrackId(trackId: string): boolean; setSettings(settings: Partial, internal?: boolean): Promise; /** * @see HMSAudioPlugin */ getPlugins(): string[]; /** * @see HMSAudioPlugin */ addPlugin(plugin: HMSAudioPlugin): Promise; /** * @see HMSAudioPlugin */ removePlugin(plugin: HMSAudioPlugin): Promise; /** * @see HMSAudioPlugin */ validatePlugin(plugin: HMSAudioPlugin): HMSPluginSupportResult; /** * @internal */ setProcessedTrack(processedTrack?: MediaStreamTrack): Promise; initAudioLevelMonitor(): void; destroyAudioLevelMonitor(): void; cleanup(): Promise; /** * @internal * published track id will be different in case there was some processing done using plugins. */ getTrackIDBeingSent(): string; /** * @internal */ getTrackBeingSent(): MediaStreamTrack; private buildNewSettings; private handleSettingsChange; /** * Replace audio track with new track on device change if enabled * @param settings - AudioSettings Object constructed with new settings * @param internal - whether the change was because of internal sdk call or external client call */ private handleDeviceChange; }