UNPKG

@skyway-sdk/core

Version:

The official Next Generation JavaScript SDK for SkyWay

63 lines 2.82 kB
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 { P2PMessage } from '.'; export declare abstract class Peer { protected readonly _context: SkyWayContext; protected readonly _iceManager: IceManager; protected readonly signaling: SignalingSession; protected readonly analytics: AnalyticsSession | undefined; protected readonly localPerson: LocalPersonImpl; protected readonly endpoint: RemoteMember; readonly role: PeerRole; private _pendingCandidates; readonly pc: RTCPeerConnection; readonly onSignalingStateChanged: Event<RTCSignalingState>; readonly onPeerConnectionStateChanged: Event<RTCPeerConnectionState>; readonly onDisconnect: Event<void>; connected: boolean; disconnected: boolean; rtcPeerConnectionId: string; constructor(_context: SkyWayContext, _iceManager: IceManager, signaling: SignalingSession, analytics: AnalyticsSession | undefined, localPerson: LocalPersonImpl, endpoint: RemoteMember, role: PeerRole); private setPeerConnectionListener; protected unSetPeerConnectionListener(): void; private _onICECandidate; private _onICECandidateError; private _onIceGatheringStateChange; private _onConnectionStateChange; private _onIceConnectionStateChange; private _onSignalingStateChange; handleCandidate(candidate: RTCIceCandidate): Promise<void>; resolveCandidates(): Promise<void>; /**@throws {@link SkyWayError} */ protected waitForSignalingState: (state: RTCSignalingState, timeout?: number) => Promise<void>; /**@throws {@link SkyWayError} */ protected waitForConnectionState: (state: RTCPeerConnectionState, timeout?: number) => Promise<void>; /**@throws {@link SkyWayError} */ protected waitForStats: ({ track, cb, interval, timeout, logging, }: { track: MediaStreamTrack; cb: (stats: { [key: string]: any; id: string; type: string; }[]) => boolean; /**ms */ interval?: number | undefined; /**ms */ timeout?: number | undefined; logging?: boolean | undefined; }) => Promise<void>; } export declare type PeerRole = 'sender' | 'receiver'; export interface IceCandidateMessage extends P2PMessage { kind: 'iceCandidateMessage'; payload: { candidate: RTCIceCandidate; role: 'receiver' | 'sender'; }; } //# sourceMappingURL=peer.d.ts.map