import type { types } from 'mediasoup-client'; import type { ParsedOutboundAudioStreamStats, ParsedOutboundVideoStreamStats } from 'webrtc-issue-detector'; import EnhancedEventEmitter from '../../../EnhancedEventEmitter'; import { type BaseTrackInfo, type EncoderConfig, TrackLabel, type TrackOutboundStats, type TrackProduceParams } from '../../../types/common'; import type { InternalObserverEvents } from '../../../types/engine'; import type { BaseTrack, BaseTrackDependenciesParams, BaseTrackParams } from '../../../types/media'; import type Logger from '../../Logger'; import type { MOSScores } from '../../../qoe/types'; type BaseTrackConstructorParams = BaseTrackParams & BaseTrackDependenciesParams; export interface LoggerContext { label: TrackLabel; id: string; kind: types.MediaKind; producerId: string | undefined; paused: boolean; published: boolean; } declare class DefaultBaseTrack implements BaseTrack { #private; protected encoderConfig: EncoderConfig; private producer?; private label; readonly logger: Logger; constructor(params: BaseTrackConstructorParams); get videoWebRTCStats(): ParsedOutboundVideoStreamStats | undefined; get audioWebRTCStats(): ParsedOutboundAudioStreamStats | undefined; get connectionScores(): MOSScores; get logCtx(): LoggerContext; get observer(): EnhancedEventEmitter; get mediaStreamTrack(): MediaStreamTrack; get originalTrack(): MediaStreamTrack | undefined; get id(): string; get kind(): types.MediaKind; get producerId(): string | undefined; get isPublished(): boolean; get isPaused(): boolean; get internalEventEmitter(): EnhancedEventEmitter; getLabel(): TrackLabel; setLabel(label: TrackLabel): void; setEncoderConfig(encoderConfig: EncoderConfig): void; getEncoderConfig(): EncoderConfig; setProducer(producer: types.Producer): void; setStopTrackOnPause(value: boolean): void; getProducer(): types.Producer | undefined; protected setOriginalTrack(): void; closeProducer(stopTrack?: boolean): Promise; setPriority(priority: RTCPriorityType): Promise; stopMediaStreamTrack(): void; protected stopOriginalTrack(): void; produce({ encodings, codecOptions, preferredCodec, transformParams, keyFrameRequestDelay, }: TrackProduceParams): Promise; publish(): Promise; unpublish(stopTrack?: boolean): Promise; private pauseRemoteProducer; private resumeRemoteProducer; protected mute(stopTrackOnPauseCallback?: () => void): Promise; resume(): Promise; getInfo(): Promise; getStats(): Promise; replaceTrack(track: MediaStreamTrack): Promise; private resumeProducer; private reopenMediaStreamTrack; private prepareProducerEncodings; private getOutboundRTPStreamStats; } export default DefaultBaseTrack;