import { MediaEvents, TrackEvent, VolumeChangeEvent } from '../types'; import { ConfigurationService } from '../configuration'; import { TypedEventEmitter } from '../utils'; import { AudioTrackManagerService } from './audio-track-manager.service'; import { MediaStreamState } from './media.types'; import { VideoTrackManagerService } from './video-track-manager.service'; export { MediaEvents }; export type { MediaStreamState, TrackEvent, VolumeChangeEvent }; interface MediaStreamEventMap { [MediaEvents.STATE_CHANGED]: (state: MediaStreamState) => void; [MediaEvents.TRACK_ADDED]: (event: TrackEvent) => void; [MediaEvents.TRACK_REMOVED]: (event: TrackEvent) => void; [MediaEvents.TRACK_MUTED]: (event: TrackEvent) => void; [MediaEvents.TRACK_UNMUTED]: (event: TrackEvent) => void; [MediaEvents.TRACK_REPLACED]: (event: TrackEvent) => void; [MediaEvents.VIDEO_STATE_CHANGED]: (state: MediaStreamState) => void; [MediaEvents.AUDIO_STATE_CHANGED]: (state: MediaStreamState) => void; [MediaEvents.VIDEO_DISABLED]: () => void; [MediaEvents.AUDIO_DISABLED]: () => void; [MediaEvents.MEDIA_RESET]: () => void; [MediaEvents.VOLUME_CHANGE]: (event: VolumeChangeEvent) => void; [MediaEvents.ERROR]: (error: unknown) => void; } export declare class MediaStreamService extends TypedEventEmitter { private configService; private stream; private unsubscribes; private videoManager; private audioManager; constructor(configService: ConfigurationService); enableVideo(): Promise; enableVideoWithTrack(track: MediaStreamTrack): Promise; disableVideo(): void; muteVideo(): void; unmuteVideo(): void; switchVideoDevice(deviceId?: string): Promise; getVideoTrack(): MediaStreamTrack | null; createAdditionalVideoTrack(deviceId: string): Promise; getVideoTrackManager(): VideoTrackManagerService; getAudioTrackManagerService(): AudioTrackManagerService; getAudioProcessingPipeline(): import('./audio-processing-pipeline.service').AudioProcessingPipelineService; engageAudioProcessing(): Promise; disengageAudioProcessing(): void; enableAudio(): Promise; enableAudioWithTrack(track: MediaStreamTrack): Promise; disableAudio(): void; muteAudio(): void; unmuteAudio(): void; switchAudioDevice(deviceId?: string): Promise; getAudioTrack(): MediaStreamTrack | null; getStream(): MediaStream | null; getState(): MediaStreamState; resetMedia(): Promise; stopStream(): Promise; destroy(): Promise; private ensureStream; private addTrackToStream; private removeTrackFromStream; private setupVideoManagerListeners; private setupAudioManagerListeners; private emitStateChanged; }