import { RBEvent, Webinar, WebinarSessionParticipant } from '../../models'; import { WebinarConferenceService } from './webinarConference.service'; import { Subscription } from 'rxjs'; export declare enum WebinarAudioMixerEvents { STAGE_AUDIO_LEVEL_CHANGED = "STAGE_AUDIO_LEVEL_CHANGED", BACKSTAGE_AUDIO_LEVEL_CHANGED = "BACKSTAGE_AUDIO_LEVEL_CHANGED", AUDIO_BALANCE_CHANGED = "AUDIO_BALANCE_CHANGED" } export declare class WebinarAudioMixer { private webinarConferenceService; private mcuAudioElement?; private audioElements?; private sharingElements?; private logger; private deviceManagement; private audioMixerEvent; private webinarExtendedBackstage; backstageAudioLevel: number; stageAudioLevel: number; audioBalance: number; constructor(webinarConferenceService: WebinarConferenceService); private initialize; destroy(): void; subscribe(handler: (event: RBEvent) => any, eventNames?: string | string[]): Subscription; sendEvent(event: WebinarAudioMixerEvents): void; addBackstageAudio(webinar: Webinar, webinarExtendeBackstage: boolean): Promise; muteBackstage(webinar: Webinar, muted?: boolean): void; unmuteBackstage(webinar: Webinar): void; manageBackstageMic(webinar: Webinar, enabled: boolean): void; private createSilentAudioTrack; addAudioStream(webinar: Webinar, participant: WebinarSessionParticipant, type: 'audio' | 'sharing', videoType?: string): Promise; removeAudioStream(participant: WebinarSessionParticipant, type: 'audio' | 'sharing' | 'all'): Promise; mute(participant: WebinarSessionParticipant, type: 'audio' | 'sharing' | 'all', muted?: boolean): void; unmute(participant: WebinarSessionParticipant, type: 'audio' | 'sharing' | 'all'): void; activateAudio(): void; updateAudioDevice(): Promise; private audioElemPlay; updateAudioLevelForParticipant(participant: WebinarSessionParticipant): void; setAudioBalance(volume: number): void; private setStageAudioLevel; private setBackstageAudioLevel; private setAudioLevel; } //# sourceMappingURL=webinarAudioMixer.d.ts.map