msc-node
Version:
mediasoup client side Node.js library
85 lines • 3.64 kB
TypeScript
import { EnhancedEventEmitter } from '../EnhancedEventEmitter';
import { ProducerCodecOptions } from '../Producer';
import { IceParameters, IceCandidate, DtlsParameters } from '../Transport';
import { RtpCapabilities, RtpCodecCapability, RtpParameters, RtpEncodingParameters } from '../RtpParameters';
import { SctpCapabilities, SctpParameters, SctpStreamParameters } from '../SctpParameters';
import { RTCRtpSender } from 'werift/lib/webrtc/src/media/rtpSender';
import { MediaStreamTrack } from 'werift';
export type HandlerFactory = () => HandlerInterface;
export type HandlerRunOptions = {
direction: 'send' | 'recv';
iceParameters: IceParameters;
iceCandidates: IceCandidate[];
dtlsParameters: DtlsParameters;
sctpParameters?: SctpParameters;
iceServers?: RTCIceServer[];
iceTransportPolicy?: RTCIceTransportPolicy;
additionalSettings?: any;
proprietaryConstraints?: any;
extendedRtpCapabilities: any;
};
export type HandlerSendOptions = {
track: any;
encodings?: RtpEncodingParameters[];
codecOptions?: ProducerCodecOptions;
codec?: RtpCodecCapability;
};
export type HandlerSendResult = {
localId: string;
rtpParameters: RtpParameters;
rtpSender?: RTCRtpSender;
};
export type HandlerReceiveOptions = {
trackId: string;
kind: 'audio' | 'video';
rtpParameters: RtpParameters;
};
export type HandlerReceiveResult = {
localId: string;
track: MediaStreamTrack;
rtpReceiver?: RTCRtpReceiver;
};
export type HandlerSendDataChannelOptions = SctpStreamParameters;
export type HandlerSendDataChannelResult = {
dataChannel: RTCDataChannel;
sctpStreamParameters: SctpStreamParameters;
};
export type HandlerReceiveDataChannelOptions = {
sctpStreamParameters: SctpStreamParameters;
label?: string;
protocol?: string;
};
export type HandlerReceiveDataChannelResult = {
dataChannel: RTCDataChannel;
};
export declare abstract class HandlerInterface extends EnhancedEventEmitter {
/**
* @emits @connect - (
* { dtlsParameters: DtlsParameters },
* callback: Function,
* errback: Function
* )
* @emits @connectionstatechange - (connectionState: ConnectionState)
*/
constructor();
abstract get name(): string;
abstract close(): void;
abstract getNativeRtpCapabilities(): Promise<RtpCapabilities>;
abstract getNativeSctpCapabilities(): Promise<SctpCapabilities>;
abstract run(options: HandlerRunOptions): void;
abstract updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
abstract restartIce(iceParameters: IceParameters): Promise<void>;
abstract getTransportStats(): Promise<RTCStatsReport>;
abstract send(options: HandlerSendOptions): Promise<HandlerSendResult>;
abstract stopSending(localId: string): Promise<void>;
abstract replaceTrack(localId: string, track: any | null): Promise<void>;
abstract setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
abstract setRtpEncodingParameters(localId: string, params: any): Promise<void>;
abstract getSenderStats(localId: string): Promise<RTCStatsReport>;
abstract sendDataChannel(options: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
abstract receive(options: HandlerReceiveOptions): Promise<HandlerReceiveResult>;
abstract stopReceiving(localId: string): Promise<void>;
abstract getReceiverStats(localId: string): Promise<RTCStatsReport>;
abstract receiveDataChannel(options: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
}
//# sourceMappingURL=HandlerInterface.d.ts.map