@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
83 lines • 3.08 kB
TypeScript
import { Event } from '@skyway-sdk/common';
import * as sdpTransform from 'sdp-transform';
import type { SkyWayContext } from '../../../../context';
import type { AnalyticsSession } from '../../../../external/analytics';
import type { IceManager } from '../../../../external/ice';
import type { SignalingSession } from '../../../../external/signaling';
import type { Codec } from '../../../../media';
import type { LocalPersonImpl } from '../../../../member/localPerson';
import type { RemoteMember } from '../../../../member/remoteMember';
import type { PublicationImpl } from '../../../../publication';
import type { TransportConnectionState } from '../../../interface';
import type { P2PMessage } from '.';
import { Peer } from './peer';
export declare class Sender extends Peer {
readonly id: string;
readonly onConnectionStateChanged: Event<TransportConnectionState>;
publications: {
[publicationId: string]: PublicationImpl;
};
transceivers: {
[publicationId: string]: RTCRtpTransceiver;
};
datachannels: {
[publicationId: string]: RTCDataChannel;
};
private _pendingPublications;
private _isNegotiating;
private readonly promiseQueue;
private _disposer;
private _ms;
private _backoffIceRestarted;
private _connectionState;
private _log;
private _unsubscribeStreamEnableChange;
private _cleanupStreamCallbacks;
private _endpoint;
private _sendDataQueue;
constructor(context: SkyWayContext, iceManager: IceManager, signaling: SignalingSession, analytics: AnalyticsSession | undefined, localPerson: LocalPersonImpl, endpoint: RemoteMember);
private _setConnectionState;
/**@throws */
readonly restartIce: () => Promise<void>;
get hasMedia(): boolean;
private _getMid;
private _listenStreamEnableChange;
/**@throws {@link SkyWayError} */
add(publication: PublicationImpl): Promise<void>;
private _setupTransportAccessForStream;
/**@throws {SkyWayError} */
remove(publicationId: string): Promise<void>;
private _replaceTrack;
private _handleReceiverAnswer;
private _safariSetupEncoding;
/**@throws {@link SkyWayError} */
private _resolvePendingSender;
close(): void;
}
export declare function applyCodecCapabilities(codecCapabilities: Codec[], mid: string, sdpObject: sdpTransform.SessionDescription): void;
export interface SenderProduceMessage extends P2PMessage {
kind: 'senderProduceMessage';
payload: {
sdp: RTCSessionDescriptionInit;
publicationId: string;
info: {
publicationId: string;
streamId: string;
mid: string;
};
};
}
export interface SenderUnproduceMessage extends P2PMessage {
kind: 'senderUnproduceMessage';
payload: {
sdp: RTCSessionDescriptionInit;
publicationId: string;
};
}
export interface SenderRestartIceMessage extends P2PMessage {
kind: 'senderRestartIceMessage';
payload: {
sdp: RTCSessionDescriptionInit;
};
}
//# sourceMappingURL=sender.d.ts.map