1
+ import FastRTCPeer , { AnswerPayload , CandidatePayload , DataPayload , OfferPayload , PeerConfig , StreamDict , StreamDictInput } from '@mattkrick/fast-rtc-peer' ;
2
+ import EventEmitter from 'eventemitter3' ;
3
+ import StrictEventEmitter from 'strict-event-emitter-types' ;
4
+ declare type Swarm < T > = T & {
5
+ id : string ;
6
+ } ;
7
+ export interface InitPayloadToServer {
8
+ readonly type : 'init' ;
9
+ readonly userId : string ;
10
+ readonly roomId : string | number ;
11
+ }
12
+ export interface ClosePayloadToServer {
13
+ readonly type : 'close' ;
14
+ }
15
+ export declare type CandidatePayloadToServer = Swarm < CandidatePayload > ;
16
+ export declare type AnswerPayloadToServer = Swarm < AnswerPayload > ;
17
+ export declare type OfferPayloadToServer = Swarm < OfferPayload > ;
18
+ export declare type PayloadToServer = CandidatePayloadToServer | AnswerPayloadToServer | OfferPayloadToServer | InitPayloadToServer | ClosePayloadToServer ;
19
+ interface SwarmOfferRequest {
20
+ readonly type : 'offerRequest' ;
21
+ }
22
+ interface SwarmOfferAccepted {
23
+ readonly type : 'offerAccepted' ;
24
+ readonly id : string ;
25
+ readonly userId : string ;
26
+ }
27
+ export interface SwarmAccept {
28
+ readonly type : 'accept' ;
29
+ readonly id : string ;
30
+ readonly userId : string ;
31
+ readonly signals : Array < OfferPayload | CandidatePayload > ;
32
+ }
33
+ export interface SwarmLeave {
34
+ readonly type : 'leaveSwarm' ;
35
+ readonly id : string ;
36
+ }
37
+ export declare type PayloadToClient = SwarmAccept | SwarmOfferRequest | SwarmOfferAccepted | CandidatePayloadToServer | AnswerPayloadToServer | OfferPayloadToServer | SwarmLeave ;
38
+ export interface FastRTCSwarmEvents {
39
+ signal : ( payload : PayloadToServer ) => void ;
40
+ data : ( data : DataPayload , peer : FastRTCPeer ) => void ;
41
+ open : ( peer : FastRTCPeer ) => void ;
42
+ close : ( peer : FastRTCPeer ) => void ;
43
+ error : ( error : Error , peer ?: FastRTCPeer ) => void ;
44
+ stream : ( stream : MediaStream , name : string , peer : FastRTCPeer ) => void ;
45
+ connection : ( iceConnectionState : RTCIceConnectionState , peer : FastRTCPeer ) => void ;
46
+ }
47
+ export declare type FastRTCSwarmEmitter = {
48
+ new ( ) : StrictEventEmitter < EventEmitter , FastRTCSwarmEvents > ;
49
+ } ;
50
+ export interface SwarmConfig extends PeerConfig {
51
+ peerBuffer ?: number ;
52
+ maxPeers ?: number ;
53
+ roomId ?: string | number ;
54
+ }
55
+ declare const FastRTCSwarm_base : FastRTCSwarmEmitter ;
56
+ declare class FastRTCSwarm extends FastRTCSwarm_base {
57
+ peers : Map < string , FastRTCPeer > ;
58
+ peerConfig : PeerConfig & {
59
+ streams : StreamDict ;
60
+ } ;
61
+ peerBuffer : number ;
62
+ maxPeers : number ;
63
+ constructor ( config ?: SwarmConfig ) ;
64
+ private createOfferer ;
65
+ private initializePeer ;
66
+ addStreams ( streams : StreamDictInput ) : void ;
67
+ broadcast ( message : DataPayload ) : void ;
68
+ close ( ) : void ;
69
+ dispatch ( payload : PayloadToClient ) : void ;
70
+ muteTrack ( name : string ) : void ;
71
+ }
72
+ export default FastRTCSwarm ;
73
+ //# sourceMappingURL=FastRTCSwarm.d.ts.map
0 commit comments