mezon-js 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,673 @@
1
+ /**
2
+ * Copyright 2020 The Mezon Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { ApiMessageAttachment, ApiMessageMention, ApiMessageReaction, ApiMessageRef, ApiRpc } from "./api.gen";
17
+ import { Session } from "./session";
18
+ import { Notification } from "./client";
19
+ import { WebSocketAdapter } from "./web_socket_adapter";
20
+ /** An object which represents a connected user in the server. */
21
+ export interface Presence {
22
+ /** The id of the user. */
23
+ user_id: string;
24
+ /** The session id of the user. */
25
+ session_id: string;
26
+ /** The username of the user. */
27
+ username: string;
28
+ /** The node the user is connected to. */
29
+ node: string;
30
+ }
31
+ /** A response from a channel join operation. */
32
+ export interface Channel {
33
+ /** The server-assigned channel id. */
34
+ id: string;
35
+ chanel_label: string;
36
+ /** The presences visible on the chat channel. */
37
+ presences: Presence[];
38
+ /** The presence of the current user, i.e. yourself. */
39
+ self: Presence;
40
+ user_id_one: string;
41
+ user_id_two: string;
42
+ }
43
+ /** Join a realtime chat channel. */
44
+ interface ChannelJoin {
45
+ channel_join: {
46
+ /** The id of the channel to join. */
47
+ target_id: string;
48
+ /** The name of the channel to join. */
49
+ target: string;
50
+ /** The channel type: 1 = Channel, 2 = Direct Message, 3 = Group. */
51
+ type: number;
52
+ /** Whether channel messages are persisted in the database. */
53
+ persistence: boolean;
54
+ /** Whether the user's channel presence is hidden when joining. */
55
+ hidden: boolean;
56
+ };
57
+ }
58
+ /** Leave a realtime chat channel. */
59
+ interface ChannelLeave {
60
+ channel_leave: {
61
+ /** The id of the channel to leave. */
62
+ channel_id: string;
63
+ mode: number;
64
+ channel_label: string;
65
+ };
66
+ }
67
+ /** Last seen message by user */
68
+ export interface LastSeenMessageEvent {
69
+ /** The channel this message belongs to. */
70
+ channel_id: string;
71
+ mode: number;
72
+ channel_label: string;
73
+ /** The unique ID of this message. */
74
+ message_id: string;
75
+ }
76
+ /** User is react to message */
77
+ export interface MessageReactionEvent {
78
+ id: string;
79
+ /** The channel this message belongs to. */
80
+ channel_id: string;
81
+ mode: number;
82
+ channel_label: string;
83
+ /** The message that user react */
84
+ message_id: string;
85
+ /** Message sender, usually a user ID. */
86
+ sender_id: string;
87
+ sender_name?: string;
88
+ sender_avatar?: string;
89
+ /** Emoji list. */
90
+ emoji: string;
91
+ count: number;
92
+ action: boolean;
93
+ }
94
+ /** User is react to message */
95
+ export interface MessageMentionEvent {
96
+ /** The channel this message belongs to. */
97
+ channel_id: string;
98
+ mode: number;
99
+ channel_label: string;
100
+ /** The message that user react */
101
+ message_id: string;
102
+ /** Message sender, usually a user ID. */
103
+ sender_id: string;
104
+ user_id: string;
105
+ username: string;
106
+ }
107
+ /** User is react to message */
108
+ export interface MessageAttachmentEvent {
109
+ /** The channel this message belongs to. */
110
+ channel_id: string;
111
+ mode: number;
112
+ channel_label: string;
113
+ /** The message that user react */
114
+ message_id: string;
115
+ /** Message sender, usually a user ID. */
116
+ sender_id: string;
117
+ filename: string;
118
+ size: number;
119
+ url: string;
120
+ filetype: string;
121
+ width?: number;
122
+ height?: number;
123
+ }
124
+ /** User is delete to message */
125
+ export interface MessageDeletedEvent {
126
+ /** The channel this message belongs to. */
127
+ channel_id: string;
128
+ mode: number;
129
+ channel_label: string;
130
+ /** The message that user react */
131
+ message_id: string;
132
+ /** Message sender, usually a user ID. */
133
+ deletor: string;
134
+ }
135
+ /** User is delete to message */
136
+ export interface MessageRefEvent {
137
+ /** The channel this message belongs to. */
138
+ channel_id: string;
139
+ mode: number;
140
+ channel_label: string;
141
+ /** The message that user react */
142
+ message_id: string;
143
+ /** Message reference ID. */
144
+ message_ref_id: string;
145
+ /** reference type */
146
+ ref_type: number;
147
+ }
148
+ /** User is typing */
149
+ export interface MessageTypingEvent {
150
+ /** The channel this message belongs to. */
151
+ channel_id: string;
152
+ mode: number;
153
+ channel_label: string;
154
+ /** Message sender, usually a user ID. */
155
+ sender_id: string;
156
+ }
157
+ /** An incoming message on a realtime chat channel. */
158
+ export interface ChannelMessageEvent {
159
+ avatar?: string;
160
+ channel_id: string;
161
+ mode: number;
162
+ channel_label: string;
163
+ clan_id?: string;
164
+ code: number;
165
+ content: string;
166
+ create_time: string;
167
+ id: string;
168
+ persistent?: boolean;
169
+ sender_id: string;
170
+ update_time: string;
171
+ user_id_one: string;
172
+ user_id_two: string;
173
+ username: string;
174
+ reactions?: Array<ApiMessageReaction>;
175
+ mentions?: Array<ApiMessageMention>;
176
+ attachments?: Array<ApiMessageAttachment>;
177
+ references?: Array<ApiMessageRef>;
178
+ referenced_message?: ChannelMessageEvent;
179
+ }
180
+ /** An acknowledgement received in response to sending a message on a chat channel. */
181
+ export interface ChannelMessageAck {
182
+ /** The server-assigned channel ID. */
183
+ channel_id: string;
184
+ mode: number;
185
+ /** A unique ID for the chat message. */
186
+ message_id: string;
187
+ /** A user-defined code for the chat message. */
188
+ code: number;
189
+ /** The username of the sender of the message. */
190
+ username: string;
191
+ /** The UNIX time when the message was created. */
192
+ create_time: string;
193
+ /** The UNIX time when the message was updated. */
194
+ update_time: string;
195
+ /** True if the chat message has been stored in history. */
196
+ persistence: boolean;
197
+ }
198
+ /** Send a message to a realtime chat channel. */
199
+ interface ChannelMessageSend {
200
+ channel_message_send: {
201
+ /** Clan Id */
202
+ clan_id: string;
203
+ /** The server-assigned channel ID. */
204
+ channel_id: string;
205
+ mode: number;
206
+ channel_label: string;
207
+ /** The content payload. */
208
+ content: any;
209
+ mentions?: Array<MessageMentionEvent>;
210
+ attachments?: Array<MessageAttachmentEvent>;
211
+ };
212
+ }
213
+ /** Update a message previously sent to a realtime chat channel. */
214
+ interface ChannelMessageUpdate {
215
+ channel_message_update: {
216
+ /** The server-assigned channel ID. */
217
+ channel_id: string;
218
+ /** The server-assigned channel label. */
219
+ channel_label: string;
220
+ /** A unique ID for the chat message to be updated. */
221
+ message_id: string;
222
+ /** The content payload. */
223
+ content: any;
224
+ /** The mode payload. */
225
+ mode: number;
226
+ };
227
+ }
228
+ /** Remove a message previously sent to a realtime chat channel. */
229
+ interface ChannelMessageRemove {
230
+ channel_message_remove: {
231
+ /** The server-assigned channel ID. */
232
+ channel_id: string;
233
+ mode: number;
234
+ channel_label: string;
235
+ /** A unique ID for the chat message to be removed. */
236
+ message_id: string;
237
+ };
238
+ }
239
+ /** Presence update for a particular realtime chat channel. */
240
+ export interface ChannelPresenceEvent {
241
+ /** The unique identifier of the chat channel. */
242
+ channel_id: string;
243
+ channel_label: string;
244
+ mode: number;
245
+ /** Presences of the users who joined the channel. */
246
+ joins: Presence[];
247
+ /** Presences of users who left the channel. */
248
+ leaves: Presence[];
249
+ }
250
+ export interface VoiceLeavedEvent {
251
+ id: string;
252
+ clan_id: string;
253
+ voice_channel_id: string;
254
+ last_participant: boolean;
255
+ }
256
+ export interface VoiceJoinedEvent {
257
+ /** The unique identifier of the chat channel. */
258
+ clan_id: string;
259
+ clan_name: string;
260
+ id: string;
261
+ participant: string;
262
+ user_id: string;
263
+ voice_channel_label: string;
264
+ voice_channel_id: string;
265
+ last_screenshot: string;
266
+ }
267
+ /** Stream identifier */
268
+ export interface StreamId {
269
+ /** The type of stream (e.g. chat). */
270
+ mode: number;
271
+ /** The primary stream subject, usually a user id. */
272
+ subject: string;
273
+ /** A secondary stream subject, for example for a direct chat. */
274
+ descriptor: string;
275
+ /** Meta-information (e.g. chat room name). */
276
+ label: string;
277
+ }
278
+ /** Stream data. */
279
+ export interface StreamData {
280
+ /** The stream identifier. */
281
+ stream: StreamId;
282
+ /** A reference to the user presence that sent this data, if any. */
283
+ sender?: Presence;
284
+ /** Arbitrary contents of the data message. */
285
+ data: string;
286
+ /** True if this data was delivered reliably. */
287
+ reliable?: boolean;
288
+ }
289
+ /** Presence updates. */
290
+ export interface StreamPresenceEvent {
291
+ /** The stream identifier. */
292
+ stream: StreamId;
293
+ /** Presences of users who joined the stream. */
294
+ joins: Presence[];
295
+ /** Presences of users who left the stream. */
296
+ leaves: Presence[];
297
+ }
298
+ /** Incoming information about a party. */
299
+ export interface Party {
300
+ /** The unique party identifier. */
301
+ party_id: string;
302
+ /** True, if the party is open to join. */
303
+ open: boolean;
304
+ /** The maximum number of party members. */
305
+ max_size: number;
306
+ /** The current user in this party, i.e. yourself. */
307
+ self: Presence;
308
+ /** The current party leader. */
309
+ leader: Presence;
310
+ /** All members currently in the party. */
311
+ presences: Presence[];
312
+ }
313
+ /** Create a party. */
314
+ export interface PartyCreate {
315
+ party_create: {
316
+ /** True, if the party is open to join. */
317
+ open: boolean;
318
+ /** The maximum number of party members. */
319
+ max_size: number;
320
+ };
321
+ }
322
+ /** Join a party. */
323
+ interface PartyJoin {
324
+ party_join: {
325
+ /** The unique party identifier. */
326
+ party_id: string;
327
+ };
328
+ }
329
+ /** Leave a party. */
330
+ interface PartyLeave {
331
+ party_leave: {
332
+ /** The unique party identifier. */
333
+ party_id: string;
334
+ };
335
+ }
336
+ /** Promote a new party leader. */
337
+ interface PartyPromote {
338
+ party_promote: {
339
+ /** The unique party identifier. */
340
+ party_id: string;
341
+ /** The user presence being promoted to leader. */
342
+ presence: Presence;
343
+ };
344
+ }
345
+ /** Announcement of a new party leader. */
346
+ export interface PartyLeader {
347
+ /** The unique party identifier. */
348
+ party_id: string;
349
+ /** The presence of the new party leader. */
350
+ presence: Presence;
351
+ }
352
+ /** Accept a request to join. */
353
+ interface PartyAccept {
354
+ party_accept: {
355
+ /** The unique party identifier. */
356
+ party_id: string;
357
+ /** The presence being accepted to join the party. */
358
+ presence: Presence;
359
+ };
360
+ }
361
+ /** End a party, kicking all party members and closing it. */
362
+ interface PartyClose {
363
+ party_close: {
364
+ /** The unique party identifier. */
365
+ party_id: string;
366
+ };
367
+ }
368
+ /** Incoming party data delivered from the server. */
369
+ export interface PartyData {
370
+ /** The unique party identifier. */
371
+ party_id: string;
372
+ /** A reference to the user presence that sent this data, if any. */
373
+ presence: Presence;
374
+ /** The operation code the message was sent with. */
375
+ op_code: number;
376
+ /** Data payload, if any. */
377
+ data: Uint8Array;
378
+ }
379
+ /** A client to server request to send data to a party. */
380
+ interface PartyDataSend {
381
+ party_data_send: {
382
+ /** The unique party identifier. */
383
+ party_id: string;
384
+ /** The operation code the message was sent with. */
385
+ op_code: number;
386
+ /** Data payload, if any. */
387
+ data: string | Uint8Array;
388
+ };
389
+ }
390
+ /** Incoming notification for one or more new presences attempting to join the party. */
391
+ export interface PartyJoinRequest {
392
+ /** The ID of the party to get a list of join requests for. */
393
+ party_id: string;
394
+ /** Presences attempting to join, or who have joined. */
395
+ presences: Presence[];
396
+ }
397
+ /** Request a list of pending join requests for a party. */
398
+ export interface PartyJoinRequestList {
399
+ party_join_request_list: {
400
+ /** The ID of the party to get a list of join requests for. */
401
+ party_id: string;
402
+ };
403
+ }
404
+ /** Begin matchmaking as a party. */
405
+ interface PartyMatchmakerAdd {
406
+ party_matchmaker_add: {
407
+ /** The ID of the party to create a matchmaker ticket for. */
408
+ party_id: string;
409
+ /** Minimum total user count to match together. */
410
+ min_count: number;
411
+ /** Maximum total user count to match together. */
412
+ max_count: number;
413
+ /** Filter query used to identify suitable users. */
414
+ query: string;
415
+ /** String properties describing the party (e.g. region). */
416
+ string_properties?: Record<string, string>;
417
+ /** Numeric properties describing the party (e.g. rank). */
418
+ numeric_properties?: Record<string, number>;
419
+ };
420
+ }
421
+ /** Cancel a party matchmaking process using a ticket. */
422
+ interface PartyMatchmakerRemove {
423
+ party_matchmaker_remove: {
424
+ /** The ID of the party to cancel a matchmaker ticket for. */
425
+ party_id: string;
426
+ /** The ticket to remove. */
427
+ ticket: string;
428
+ };
429
+ }
430
+ /** A response from starting a new party matchmaking process. */
431
+ export interface PartyMatchmakerTicket {
432
+ /** The ID of the party. */
433
+ party_id: string;
434
+ /** The matchmaker ticket created. */
435
+ ticket: string;
436
+ }
437
+ /** Presence update for a particular party. */
438
+ export interface PartyPresenceEvent {
439
+ /** The ID of the party. */
440
+ party_id: string;
441
+ /** The user presences that have just joined the party. */
442
+ joins: Presence[];
443
+ /** The user presences that have just left the party. */
444
+ leaves: Presence[];
445
+ }
446
+ /** Kick a party member, or decline a request to join. */
447
+ interface PartyRemove {
448
+ party_remove: {
449
+ /** The ID of the party to remove/reject from. */
450
+ party_id: string;
451
+ /** The presence to remove/reject. */
452
+ presence: Presence;
453
+ };
454
+ }
455
+ /** Execute an Lua function on the server. */
456
+ interface Rpc {
457
+ rpc: ApiRpc;
458
+ }
459
+ /** Application-level heartbeat ping. */
460
+ interface Ping {
461
+ }
462
+ /** A snapshot of statuses for some set of users. */
463
+ export interface Status {
464
+ /** The user presences to view statuses of. */
465
+ presences: Presence[];
466
+ }
467
+ /** Start receiving status updates for some set of users. */
468
+ interface StatusFollow {
469
+ /** The IDs of the users to follow. */
470
+ status_follow: {
471
+ user_ids: string[];
472
+ };
473
+ }
474
+ /** A batch of status updates for a given user. */
475
+ export interface StatusPresenceEvent {
476
+ /** This join information is in response to a subscription made to be notified when a user comes online. */
477
+ joins: Presence[];
478
+ /** This join information is in response to a subscription made to be notified when a user goes offline. */
479
+ leaves: Presence[];
480
+ }
481
+ /** Stop receiving status updates for some set of users. */
482
+ interface StatusUnfollow {
483
+ /** The IDs of user to unfollow. */
484
+ status_unfollow: {
485
+ user_ids: string[];
486
+ };
487
+ }
488
+ /** Set the user's own status. */
489
+ interface StatusUpdate {
490
+ /** Status string to set, if not present the user will appear offline. */
491
+ status_update: {
492
+ status?: string;
493
+ };
494
+ }
495
+ /** A socket connection to Mezon server. */
496
+ export interface Socket {
497
+ /** Connect to the server. */
498
+ connect(session: Session, createStatus: boolean): Promise<Session>;
499
+ /** Disconnect from the server. */
500
+ disconnect(fireDisconnectEvent: boolean): void;
501
+ /** Accept a request to join. */
502
+ acceptPartyMember(party_id: string, presence: Presence): Promise<void>;
503
+ /** End a party, kicking all party members and closing it. */
504
+ closeParty(party_id: string): Promise<void>;
505
+ /** Create a party. */
506
+ createParty(open: boolean, max_size: number): Promise<Party>;
507
+ /** Subscribe to one or more users for their status updates. */
508
+ followUsers(user_ids: string[]): Promise<Status>;
509
+ /** Join a chat channel on the server. */
510
+ joinChat(channel_id: string, channel_label: string, mode: number, type: number, persistence: boolean, hidden: boolean): Promise<Channel>;
511
+ /** Join a party. */
512
+ joinParty(party_id: string): Promise<void>;
513
+ /** Leave a chat channel on the server. */
514
+ leaveChat(channel_id: string, channel_label: string, mode: number): Promise<void>;
515
+ /** Leave a multiplayer match on the server. */
516
+ leaveMatch(matchId: string): Promise<void>;
517
+ /** Leave a party. */
518
+ leaveParty(party_id: string): Promise<void>;
519
+ /** Request a list of pending join requests for a party. */
520
+ listPartyJoinRequests(party_id: string): Promise<PartyJoinRequest>;
521
+ /** Promote a new party leader. */
522
+ promotePartyMember(party_id: string, party_member: Presence): Promise<PartyLeader>;
523
+ /** Remove a chat message from a chat channel on the server. */
524
+ removeChatMessage(channel_id: string, channel_label: string, mode: number, message_id: string): Promise<ChannelMessageAck>;
525
+ /** Kick a party member, or decline a request to join. */
526
+ removePartyMember(party_id: string, presence: Presence): Promise<void>;
527
+ /** Execute an RPC function to the server. */
528
+ rpc(id?: string, payload?: string, http_key?: string): Promise<ApiRpc>;
529
+ /** Send data to a party. */
530
+ sendPartyData(party_id: string, opcode: number, data: string | Uint8Array): Promise<void>;
531
+ /** Unfollow one or more users from their status updates. */
532
+ unfollowUsers(user_ids: string[]): Promise<void>;
533
+ /** Update a chat message on a chat channel in the server. */
534
+ updateChatMessage(channel_id: string, channel_label: string, mode: number, message_id: string, content: any): Promise<ChannelMessageAck>;
535
+ /** Update the status for the current user online. */
536
+ updateStatus(status?: string): Promise<void>;
537
+ /** Send a chat message to a chat channel on the server. */
538
+ writeChatMessage(clan_id: string, channel_id: string, channel_label: string, mode: number, content?: any, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, references?: Array<ApiMessageRef>): Promise<ChannelMessageAck>;
539
+ /** Send message typing */
540
+ writeMessageTyping(channel_id: string, channel_label: string, mode: number): Promise<MessageTypingEvent>;
541
+ /** Send message reaction */
542
+ writeMessageReaction(id: string, channel_id: string, channel_label: string, mode: number, message_id: string, emoji: string, count: number, message_sender_id: string, action_delete: boolean): Promise<MessageReactionEvent>;
543
+ /** Send message mention */
544
+ writeMessageDeleted(channel_id: string, channel_label: string, mode: number, message_id: string, deletor: string): Promise<MessageDeletedEvent>;
545
+ /** Send last seen message */
546
+ writeLastSeenMessage(channel_id: string, channel_label: string, mode: number, message_id: string, timestamp: string): Promise<LastSeenMessageEvent>;
547
+ /** send voice joined */
548
+ writeVoiceJoined(id: string, clanId: string, clanName: string, voiceChannelId: string, voiceChannelLabel: string, participant: string, lastScreenshot: string): Promise<VoiceJoinedEvent>;
549
+ /** send voice leaved */
550
+ writeVoiceLeaved(id: string, clanId: string, voiceChannelId: string, lastParticipant: boolean): Promise<VoiceLeavedEvent>;
551
+ /** Handle disconnect events received from the socket. */
552
+ ondisconnect: (evt: Event) => void;
553
+ /** Handle error events received from the socket. */
554
+ onerror: (evt: Event) => void;
555
+ /** Receive notifications from the socket. */
556
+ onnotification: (notification: Notification) => void;
557
+ /** Receive party events. */
558
+ onparty: (party: Party) => void;
559
+ /** Receive party close events. */
560
+ onpartyclose: (partyClose: PartyClose) => void;
561
+ /** Receive party data updates. */
562
+ onpartydata: (partyData: PartyData) => void;
563
+ /** Receive party join requests, if party leader. */
564
+ onpartyjoinrequest: (partyJoinRequest: PartyJoinRequest) => void;
565
+ /** Receive announcements of a new party leader. */
566
+ onpartyleader: (partyLeader: PartyLeader) => void;
567
+ /** Receive a presence update for a party. */
568
+ onpartypresence: (partyPresence: PartyPresenceEvent) => void;
569
+ /** Receive status presence updates. */
570
+ onstatuspresence: (statusPresence: StatusPresenceEvent) => void;
571
+ /** Receive stream presence updates. */
572
+ onstreampresence: (streamPresence: StreamPresenceEvent) => void;
573
+ /** Receive stream data. */
574
+ onstreamdata: (streamData: StreamData) => void;
575
+ /**
576
+ * An application-level heartbeat timeout that fires after the client does not receive a pong from the server after the heartbeat interval.
577
+ * Most browsers maintain an internal heartbeat, in which case its unlikely you'll need to use this callback. However, Chrome does not implement an internal heartbeat.
578
+ * We fire this separately from `onclose` because heartbeats fail when there's no connectivity, and many browsers don't fire `onclose` until the closing handshake either succeeds or fails.
579
+ * In any case, be aware that `onclose` will still fire if there is a heartbeat timeout in a potentially delayed manner.
580
+ */
581
+ onheartbeattimeout: () => void;
582
+ /** Receive channel message. */
583
+ onchannelmessage: (channelMessage: ChannelMessageEvent) => void;
584
+ /** Receive typing event */
585
+ onmessagetyping: (messageTypingEvent: MessageTypingEvent) => void;
586
+ /** Receive reaction event */
587
+ onmessagereaction: (messageReactionEvent: MessageReactionEvent) => void;
588
+ /** Receive deleted message */
589
+ onmessagedeleted: (messageDeletedEvent: MessageDeletedEvent) => void;
590
+ /** Receive channel presence updates. */
591
+ onchannelpresence: (channelPresence: ChannelPresenceEvent) => void;
592
+ onvoicejoined: (voiceParticipant: VoiceJoinedEvent) => void;
593
+ onvoiceleaved: (voiceParticipant: VoiceLeavedEvent) => void;
594
+ setHeartbeatTimeoutMs(ms: number): void;
595
+ getHeartbeatTimeoutMs(): number;
596
+ }
597
+ /** Reports an error received from a socket message. */
598
+ export interface SocketError {
599
+ /** The error code. */
600
+ code: number;
601
+ /** A message in English to help developers debug the response. */
602
+ message: string;
603
+ }
604
+ /** A socket connection to Mezon server implemented with the DOM's WebSocket API. */
605
+ export declare class DefaultSocket implements Socket {
606
+ readonly host: string;
607
+ readonly port: string;
608
+ readonly useSSL: boolean;
609
+ verbose: boolean;
610
+ readonly adapter: WebSocketAdapter;
611
+ readonly sendTimeoutMs: number;
612
+ static readonly DefaultHeartbeatTimeoutMs = 10000;
613
+ static readonly DefaultSendTimeoutMs = 10000;
614
+ static readonly DefaultConnectTimeoutMs = 30000;
615
+ private readonly cIds;
616
+ private nextCid;
617
+ private _heartbeatTimeoutMs;
618
+ constructor(host: string, port: string, useSSL?: boolean, verbose?: boolean, adapter?: WebSocketAdapter, sendTimeoutMs?: number);
619
+ generatecid(): string;
620
+ connect(session: Session, createStatus?: boolean, connectTimeoutMs?: number): Promise<Session>;
621
+ disconnect(fireDisconnectEvent?: boolean): void;
622
+ setHeartbeatTimeoutMs(ms: number): void;
623
+ getHeartbeatTimeoutMs(): number;
624
+ ondisconnect(evt: Event): void;
625
+ onerror(evt: Event): void;
626
+ onmessagetyping(messagetyping: MessageTypingEvent): void;
627
+ onmessagereaction(messagereaction: MessageReactionEvent): void;
628
+ onmessagedeleted(messagedeleted: MessageDeletedEvent): void;
629
+ onchannelmessage(channelMessage: ChannelMessageEvent): void;
630
+ onchannelpresence(channelPresence: ChannelPresenceEvent): void;
631
+ onnotification(notification: Notification): void;
632
+ onparty(party: Party): void;
633
+ onpartyclose(close: PartyClose): void;
634
+ onpartyjoinrequest(partyJoinRequest: PartyJoinRequest): void;
635
+ onpartydata(partyData: PartyData): void;
636
+ onpartyleader(partyLeader: PartyLeader): void;
637
+ onpartymatchmakerticket(partyMatched: PartyMatchmakerTicket): void;
638
+ onpartypresence(partyPresence: PartyPresenceEvent): void;
639
+ onstatuspresence(statusPresence: StatusPresenceEvent): void;
640
+ onvoicejoined(voiceParticipant: VoiceJoinedEvent): void;
641
+ onvoiceleaved(voiceParticipant: VoiceLeavedEvent): void;
642
+ onstreampresence(streamPresence: StreamPresenceEvent): void;
643
+ onstreamdata(streamData: StreamData): void;
644
+ onheartbeattimeout(): void;
645
+ send(message: ChannelJoin | ChannelLeave | ChannelMessageSend | ChannelMessageUpdate | ChannelMessageRemove | MessageTypingEvent | LastSeenMessageEvent | PartyAccept | PartyClose | PartyCreate | PartyDataSend | PartyJoin | PartyJoinRequestList | PartyLeave | PartyMatchmakerAdd | PartyMatchmakerRemove | PartyPromote | PartyRemove | Rpc | StatusFollow | StatusUnfollow | StatusUpdate | Ping, sendTimeout?: number): Promise<any>;
646
+ acceptPartyMember(party_id: string, presence: Presence): Promise<void>;
647
+ closeParty(party_id: string): Promise<void>;
648
+ createParty(open: boolean, max_size: number): Promise<Party>;
649
+ followUsers(userIds: string[]): Promise<Status>;
650
+ joinChat(channel_id: string, channel_label: string, mode: number, type: number, persistence: boolean, hidden: boolean): Promise<Channel>;
651
+ joinParty(party_id: string): Promise<void>;
652
+ leaveChat(channel_id: string, channel_label: string, mode: number): Promise<void>;
653
+ leaveMatch(matchId: string): Promise<void>;
654
+ leaveParty(party_id: string): Promise<void>;
655
+ listPartyJoinRequests(party_id: string): Promise<PartyJoinRequest>;
656
+ promotePartyMember(party_id: string, party_member: Presence): Promise<PartyLeader>;
657
+ removeChatMessage(channel_id: string, channel_label: string, mode: number, message_id: string): Promise<ChannelMessageAck>;
658
+ removePartyMember(party_id: string, member: Presence): Promise<void>;
659
+ rpc(id?: string, payload?: string, http_key?: string): Promise<ApiRpc>;
660
+ sendPartyData(party_id: string, op_code: number, data: string | Uint8Array): Promise<void>;
661
+ unfollowUsers(user_ids: string[]): Promise<void>;
662
+ updateChatMessage(channel_id: string, channel_label: string, mode: number, message_id: string, content: any): Promise<ChannelMessageAck>;
663
+ updateStatus(status?: string): Promise<void>;
664
+ writeChatMessage(clan_id: string, channel_id: string, channel_label: string, mode: number, content: any, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, references?: Array<ApiMessageRef>): Promise<ChannelMessageAck>;
665
+ writeMessageReaction(id: string, channel_id: string, channel_label: string, mode: number, message_id: string, emoji: string, count: number, message_sender_id: string, action_delete: boolean): Promise<MessageReactionEvent>;
666
+ writeMessageDeleted(channel_id: string, channel_label: string, mode: number, message_id: string): Promise<MessageDeletedEvent>;
667
+ writeMessageTyping(channel_id: string, channel_label: string, mode: number): Promise<MessageTypingEvent>;
668
+ writeLastSeenMessage(channel_id: string, channel_label: string, mode: number, message_id: string, timestamp: string): Promise<LastSeenMessageEvent>;
669
+ writeVoiceJoined(id: string, clanId: string, clanName: string, voiceChannelId: string, voiceChannelLabel: string, participant: string, lastScreenshot: string): Promise<VoiceJoinedEvent>;
670
+ writeVoiceLeaved(id: string, clanId: string, voiceChannelId: string, lastParticipant: boolean): Promise<VoiceLeavedEvent>;
671
+ private pingPong;
672
+ }
673
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function buildFetchOptions(method: string, options: any, bodyJson: string): any;
2
+ export declare function b64EncodeUnicode(str: string): string;
3
+ export declare function b64DecodeUnicode(str: string): string;