import { TrackStatsReport, TrackBaseInfo, TrackSourceType, Profile } from "../../types"; import EnhancedEventEmitter from "../../EnhancedEventEmitter"; import { ImageStreamTrack } from "../image"; export declare class Track extends EnhancedEventEmitter { info: TrackBaseInfo; userId?: string; mediaTrack: MediaStreamTrack; mediaElement?: HTMLVideoElement | HTMLAudioElement; master: boolean; private stats; private lastStats?; protected statsInterval?: number; isReplacedByImageTrack: boolean; imageStreamTrack?: ImageStreamTrack; private _selfEndedCallback; readonly sourceType: TrackSourceType; constructor(track: MediaStreamTrack, userId?: string, direction?: "local" | "remote", profiles?: Profile[]); play(container: HTMLElement, muted?: boolean): Promise; getStats(): TrackStatsReport[]; getCurrentFrameDataURL(): string; /** * 设置 Track 为 Master SDK只允许发布一路 Audio Track 和一路 Video Track * @param master 是否为master */ setMaster(master: boolean): void; release(): void; selfEndedCallback: any; /** * @abstract */ setVolume(value: number): void; /** * @abstract */ getCurrentTimeDomainData(): Uint8Array; /** * @abstract */ getCurrentFrequencyData(): Uint8Array; /** * @abstract */ getVolume(): number; /** * @abstract */ getCurrentVolumeLevel(): number; /** * @abstract */ setLoop(loop: boolean): void; /** * @abstract */ startAudioSource(): void; /** * @abstract */ pauseAudioSource(): void; /** * @abstract */ resumeAudioSource(): void; /** * @abstract */ stopAudioSource(): void; /** * @abstract */ getCurrentTime(): number; /** * @abstract */ setCurrentTime(val: number): void; /** * @abstract */ getDuration(): number; }