@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
65 lines • 2.82 kB
TypeScript
import { Event } 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 { LocalPersonImpl } from '../../../../member/localPerson';
import type { RemoteMember } from '../../../../member/remoteMember';
import { type Publication, PublicationImpl } from '../../../../publication';
import type { Subscription, SubscriptionImpl } from '../../../../subscription';
import type { SkyWayConnection } from '../../../interface/connection';
import { Receiver } from './receiver';
import { Sender } from './sender';
/**@internal */
export declare class P2PConnection implements SkyWayConnection {
private readonly _iceManager;
private readonly _signaling;
private readonly _analytics;
private readonly _context;
readonly channelId: string;
readonly localPerson: LocalPersonImpl;
readonly remoteMember: RemoteMember;
readonly id: string;
readonly type = "p2p";
readonly onDisconnect: Event<void>;
readonly onClose: Event<void>;
closed: boolean;
disconnected: boolean;
private _log;
private _pubsubQueue;
private sendSubscriptionStatsReportTimers;
private _waitingSendSubscriptionStatsReportsFromPublish;
private _waitingSendSubscriptionStatsReportsFromSubscribe;
readonly sender: Sender;
readonly receiver: Receiver;
/**@internal */
constructor(_iceManager: IceManager, _signaling: SignalingSession, _analytics: AnalyticsSession | undefined, _context: SkyWayContext, channelId: string, localPerson: LocalPersonImpl, remoteMember: RemoteMember);
/**
* @internal
* @throws {SkyWayError}
*/
startPublishing(publication: PublicationImpl, subscriptionId: string): Promise<void>;
/**@internal */
stopPublishing(publication: Publication): Promise<void>;
/**@internal */
startSubscribing(subscription: SubscriptionImpl): Promise<void>;
/**@internal */
stopSubscribing(subscription: Subscription): Promise<void>;
private _closeIfNeeded;
getStats(content: Subscription | Publication): Promise<RTCStatsReport>;
/**@internal */
close({ reason }?: {
reason?: string;
}): void;
private startSendSubscriptionStatsReportTimer;
}
declare const p2pMessageKinds: readonly ["senderProduceMessage", "senderUnproduceMessage", "receiverAnswerMessage", "iceCandidateMessage", "senderRestartIceMessage", "ping"];
/**@internal */
export declare type P2PMessageKind = (typeof p2pMessageKinds)[number];
/**@internal */
export declare type P2PMessage = {
kind: P2PMessageKind;
payload: any;
};
export {};
//# sourceMappingURL=index.d.ts.map