import { SendHandler, RecvHandler } from "./Handler"; import { RtpCapabilities } from "../../types"; import { TaskQueue } from "../../TaskQueue"; import EnhancedEventEmitter from "../../EnhancedEventEmitter"; import Consumer from "./Consumer"; import { SignalingWS } from "../ws"; import { Track } from "../stream/track"; import { PCTrack } from "../stream/pctrack"; export declare class ConnectionTransport extends EnhancedEventEmitter { extendedRtpCapabilities: RtpCapabilities; sendHandler: SendHandler; recvHandler: RecvHandler; sendCommandQueue: TaskQueue; recvCommandQueue: TaskQueue; simulcast: boolean; /** * sub-pc 创建单独走一个 queue */ recvInitCommandQueue: TaskQueue; sendTrackQueue: MediaStreamTrack[]; consumerQueue: Consumer[]; private signaling; private _publishTracks; private initSubPcPromise; private initSubPcPromiseResolve?; readonly publishTracks: PCTrack[]; constructor(rtpcap: RtpCapabilities, signaling: SignalingWS, simulcast?: boolean); resolveInitSubPcPromise(): void; private handleSendHandler; sendTracks(tracks: PCTrack[]): Promise; removeTracks(tracks: PCTrack[]): Promise; restartSendICE(pcid: string): Promise; private handleSendCommandTask; /** * 将 Track 添加到 transport 的 PCTrack 列表中 * 将这一步抽成同步方法是为了保证多个 publish 操作同时触发时 * 上层能够正确监测到非法订阅操作并及时抛出错误 */ addTrackToPublishTracks(tracks: Track[]): PCTrack[]; /** * 当发布任务遇到无法重试的失败时清理添加的 Tracks */ removeTrackFromPublishTracks(tracks: Track[]): void; private _execAddProducerTracks; private _execRemoveTracks; private _execRestartSendICE; reconnectProducer(): void; private handleRecvHandler; appendConsumer(consumer: Consumer): void; addConsumers(): Promise; initRecvHandler(trackIds: string[]): Promise; removeConsumers(consumers: Consumer[]): Promise; restartRecvICE(pcid: string): Promise; private _removeConsumers; private _initRecvHandler; private _addConsumers; private _execRestartRecvICE; private handleRecvCommandTask; private handleRecvInitCommandTask; resetSendCommandQueue(): void; resetRecvCommandQueue(): void; resetRecvHandler(): void; release(): void; }