@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
58 lines • 2.34 kB
TypeScript
import { Event, type SkyWayError } from '@skyway-sdk/common';
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 { RemoteStream } from '../../../../media/stream';
import type { LocalPersonImpl } from '../../../../member/localPerson';
import type { RemoteMember } from '../../../../member/remoteMember';
import type { SubscriptionImpl } from '../../../../subscription';
import type { TransportConnectionState } from '../../../interface';
import type { P2PMessage } from '.';
import { Peer } from './peer';
export declare class Receiver extends Peer {
readonly id: string;
readonly onConnectionStateChanged: Event<TransportConnectionState>;
readonly onStreamAdded: Event<{
publicationId: string;
stream: RemoteStream;
}>;
readonly onError: Event<SkyWayError<Record<string, any>>>;
private _connectionState;
private _publicationInfo;
streams: {
[publicationId: string]: RemoteStream;
};
private _subscriptions;
private readonly _promiseQueue;
private _disposer;
private _log;
constructor(context: SkyWayContext, iceManager: IceManager, signaling: SignalingSession, analytics: AnalyticsSession | undefined, localPerson: LocalPersonImpl, endpoint: RemoteMember);
private _setConnectionState;
private _setupTransportAccessForStream;
private _getCodecFromSdp;
get hasMedia(): boolean;
close(): void;
add(subscription: SubscriptionImpl): void;
remove(subscriptionId: string): void;
/**@throws {SkyWayError} */
private _validateRemoteOffer;
private get isWrongSignalingState();
/**@throws {SkyWayError} */
private _handleSenderProduce;
/**@throws {SkyWayError} */
private _handleSenderUnproduce;
/**@throws {SkyWayError} */
private _handleSenderRestartIce;
private sendAnswer;
get subscriptions(): {
[subscriptionId: string]: SubscriptionImpl<RemoteStream>;
};
}
export interface ReceiverAnswerMessage extends P2PMessage {
kind: 'receiverAnswerMessage';
payload: {
sdp: RTCSessionDescriptionInit;
};
}
//# sourceMappingURL=receiver.d.ts.map