import { SubscribedCodec, SubscribedQuality, VideoLayer } from '@livekit/protocol'; import type { SignalClient } from '../../api/SignalClient'; import type { VideoSenderStats } from '../stats'; import type { LoggerOptions } from '../types'; import LocalTrack from './LocalTrack'; import { Track, VideoQuality } from './Track'; import type { VideoCaptureOptions, VideoCodec } from './options'; import type { TrackProcessor } from './processor/types'; export declare class SimulcastTrackInfo { codec: VideoCodec; mediaStreamTrack: MediaStreamTrack; sender?: RTCRtpSender; encodings?: RTCRtpEncodingParameters[]; constructor(codec: VideoCodec, mediaStreamTrack: MediaStreamTrack); } export default class LocalVideoTrack extends LocalTrack { signalClient?: SignalClient; private prevStats?; private encodings?; simulcastCodecs: Map; private subscribedCodecs?; private senderLock; private degradationPreference; private isCpuConstrained; private optimizeForPerformance; get sender(): RTCRtpSender | undefined; set sender(sender: RTCRtpSender | undefined); /** * * @param mediaTrack * @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks * @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK */ constructor(mediaTrack: MediaStreamTrack, constraints?: MediaTrackConstraints, userProvidedTrack?: boolean, loggerOptions?: LoggerOptions); get isSimulcast(): boolean; startMonitor(signalClient: SignalClient): void; stop(): void; pauseUpstream(): Promise; resumeUpstream(): Promise; mute(): Promise; unmute(): Promise; protected setTrackMuted(muted: boolean): void; getSenderStats(): Promise; setPublishingQuality(maxQuality: VideoQuality): void; restartTrack(options?: VideoCaptureOptions): Promise; setProcessor(processor: TrackProcessor, showProcessedStreamLocally?: boolean): Promise; setDegradationPreference(preference: RTCDegradationPreference): Promise; addSimulcastTrack(codec: VideoCodec, encodings?: RTCRtpEncodingParameters[]): SimulcastTrackInfo | undefined; setSimulcastTrackSender(codec: VideoCodec, sender: RTCRtpSender): void; /** * @internal * Sets codecs that should be publishing, returns new codecs that have not yet * been published */ setPublishingCodecs(codecs: SubscribedCodec[]): Promise; /** * @internal * Sets layers that should be publishing */ setPublishingLayers(isSvc: boolean, qualities: SubscribedQuality[]): Promise; /** * Designed for lower powered devices, reduces video publishing quality and disables simulcast. * @experimental */ prioritizePerformance(): Promise; protected monitorSender: () => Promise; protected handleAppVisibilityChanged(): Promise; } export declare function videoQualityForRid(rid: string): VideoQuality; export declare function videoLayersFromEncodings(width: number, height: number, encodings?: RTCRtpEncodingParameters[], svc?: boolean): VideoLayer[]; //# sourceMappingURL=LocalVideoTrack.d.ts.map