@antzsoft/chat-core 1.1.0 → 1.1.2
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.
- package/README.md +55 -20
- package/dist/index.cjs +381 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -31
- package/dist/index.d.ts +37 -31
- package/dist/index.js +380 -29
- package/dist/index.js.map +1 -1
- package/docs/integration-guide.html +222 -17
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -3,7 +3,6 @@ import { Socket } from 'socket.io-client';
|
|
|
3
3
|
import * as zustand_middleware from 'zustand/middleware';
|
|
4
4
|
import * as zustand from 'zustand';
|
|
5
5
|
|
|
6
|
-
type EncryptionMode = 'none' | 'server' | 'e2ee';
|
|
7
6
|
type FileType = 'image' | 'video' | 'audio' | 'document';
|
|
8
7
|
type ConversationType = 'direct' | 'group';
|
|
9
8
|
type MessageStatus = 'sent' | 'delivered' | 'read' | 'failed' | 'deleted';
|
|
@@ -79,17 +78,6 @@ interface Attachment {
|
|
|
79
78
|
isUploading?: boolean;
|
|
80
79
|
uploadProgress?: number;
|
|
81
80
|
}
|
|
82
|
-
interface EncryptedContent {
|
|
83
|
-
ciphertext: string;
|
|
84
|
-
iv: string;
|
|
85
|
-
tag: string;
|
|
86
|
-
algorithm: 'aes-256-gcm';
|
|
87
|
-
}
|
|
88
|
-
interface EncryptionKeyInfo {
|
|
89
|
-
key: string;
|
|
90
|
-
enabled: boolean;
|
|
91
|
-
mode: EncryptionMode;
|
|
92
|
-
}
|
|
93
81
|
interface MessageReaction {
|
|
94
82
|
emoji: string;
|
|
95
83
|
userIds: string[];
|
|
@@ -100,10 +88,23 @@ interface MessageContent {
|
|
|
100
88
|
type: 'text' | 'attachment' | 'system';
|
|
101
89
|
attachments?: Attachment[];
|
|
102
90
|
}
|
|
91
|
+
interface ReplyAttachmentSnapshot {
|
|
92
|
+
type: FileType;
|
|
93
|
+
filename: string;
|
|
94
|
+
mimeType: string;
|
|
95
|
+
size: number;
|
|
96
|
+
duration?: number;
|
|
97
|
+
dimensions?: {
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
};
|
|
101
|
+
url: string;
|
|
102
|
+
}
|
|
103
103
|
interface MessageReplyReference {
|
|
104
104
|
messageId?: string;
|
|
105
105
|
contentPreview?: string;
|
|
106
106
|
senderName?: string;
|
|
107
|
+
attachmentSnapshot?: ReplyAttachmentSnapshot;
|
|
107
108
|
id?: string;
|
|
108
109
|
content?: MessageContent;
|
|
109
110
|
sender?: Pick<User, 'displayName' | 'avatarUrl'>;
|
|
@@ -136,9 +137,6 @@ interface Message {
|
|
|
136
137
|
userId: string;
|
|
137
138
|
deliveredAt: string;
|
|
138
139
|
}>;
|
|
139
|
-
isEncrypted?: boolean;
|
|
140
|
-
encryptionMode?: EncryptionMode;
|
|
141
|
-
encryptedContent?: EncryptedContent;
|
|
142
140
|
}
|
|
143
141
|
interface Participant {
|
|
144
142
|
userId: string;
|
|
@@ -175,9 +173,6 @@ interface Conversation {
|
|
|
175
173
|
isPinned?: boolean;
|
|
176
174
|
isMuted?: boolean;
|
|
177
175
|
mutedUntil?: string;
|
|
178
|
-
encryptionMode?: EncryptionMode;
|
|
179
|
-
isEncryptionEnabled?: boolean;
|
|
180
|
-
encryptionKey?: string;
|
|
181
176
|
}
|
|
182
177
|
interface AppConfig {
|
|
183
178
|
maxPinnedConversations: number;
|
|
@@ -247,6 +242,7 @@ interface PresignedUrlRequest {
|
|
|
247
242
|
size: number;
|
|
248
243
|
conversationId?: string;
|
|
249
244
|
folder?: string;
|
|
245
|
+
metadata?: Record<string, unknown>;
|
|
250
246
|
}
|
|
251
247
|
interface PresignedUrlResponse {
|
|
252
248
|
fileId: string;
|
|
@@ -375,8 +371,6 @@ interface SendMessagePayload {
|
|
|
375
371
|
attachments?: SendMessageAttachment[];
|
|
376
372
|
replyTo?: string;
|
|
377
373
|
tempId: string;
|
|
378
|
-
encryptedContent?: EncryptedContent;
|
|
379
|
-
isEncrypted?: boolean;
|
|
380
374
|
}
|
|
381
375
|
interface QuietHours {
|
|
382
376
|
enabled: boolean;
|
|
@@ -509,8 +503,14 @@ interface AntzChatConfig {
|
|
|
509
503
|
};
|
|
510
504
|
/** Required for multi-tenant backends. Sent as X-Tenant-ID header. */
|
|
511
505
|
tenantId?: string;
|
|
512
|
-
/**
|
|
513
|
-
|
|
506
|
+
/**
|
|
507
|
+
* Enable payload-level transit encryption (ECDH key exchange + AES-256-GCM).
|
|
508
|
+
* Encrypts every HTTP request/response body and every socket event payload.
|
|
509
|
+
* Server must have TRANSIT_ENCRYPTION_ENABLED=true to match.
|
|
510
|
+
* Default: true — set false only for local development/debugging.
|
|
511
|
+
* Safe to toggle anytime — no data migration needed (wire-only, never affects storage).
|
|
512
|
+
*/
|
|
513
|
+
transitEncryption?: boolean;
|
|
514
514
|
upload?: UploadConfig;
|
|
515
515
|
/**
|
|
516
516
|
* Optional compression config. Compression is disabled if platformCompressFn is not provided.
|
|
@@ -567,7 +567,7 @@ interface ResolvedConfig {
|
|
|
567
567
|
url?: string;
|
|
568
568
|
base64?: string;
|
|
569
569
|
};
|
|
570
|
-
|
|
570
|
+
transitEncryption: boolean;
|
|
571
571
|
upload: {
|
|
572
572
|
maxFileSizeMB: ResolvedFileSizeLimits;
|
|
573
573
|
maxFilesPerMessage: number;
|
|
@@ -626,7 +626,6 @@ interface SendData {
|
|
|
626
626
|
attachments?: SendMessagePayload['attachments'];
|
|
627
627
|
replyTo?: string;
|
|
628
628
|
tempId?: string;
|
|
629
|
-
isEncrypted?: boolean;
|
|
630
629
|
}
|
|
631
630
|
declare const messagesApi: {
|
|
632
631
|
list(conversationId: string, params?: ListMessagesParams): Promise<CursorPaginatedResponse<Message>>;
|
|
@@ -675,7 +674,7 @@ declare const conversationsApi: {
|
|
|
675
674
|
createDirect(payload: CreateDirectData): Promise<Conversation>;
|
|
676
675
|
update(conversationId: string, payload: UpdateConversationData): Promise<Conversation>;
|
|
677
676
|
delete(conversationId: string): Promise<void>;
|
|
678
|
-
addParticipants(conversationId: string, userIds: string[]): Promise<Conversation>;
|
|
677
|
+
addParticipants(conversationId: string, userIds: string[], role?: "admin" | "member"): Promise<Conversation>;
|
|
679
678
|
removeParticipant(conversationId: string, userId: string): Promise<Conversation>;
|
|
680
679
|
updateParticipantRole(conversationId: string, userId: string, role: "admin" | "member"): Promise<Conversation>;
|
|
681
680
|
mute(conversationId: string, mutedUntil?: string): Promise<void>;
|
|
@@ -839,10 +838,7 @@ declare function disconnectSocket(): void;
|
|
|
839
838
|
declare function reconnectSocket(token: string, userId?: string, tenantId?: string): void;
|
|
840
839
|
/**
|
|
841
840
|
* Updates the socket auth token from the stored getToken function and reconnects.
|
|
842
|
-
* Called by SocketProvider on connect_error to handle expired-token scenarios
|
|
843
|
-
* 1. Token expired while disconnected → server rejects the reconnect handshake
|
|
844
|
-
* 2. authProvider returns a fresh token → we update socket auth and retry
|
|
845
|
-
*
|
|
841
|
+
* Called by SocketProvider on connect_error to handle expired-token scenarios.
|
|
846
842
|
* Returns true if the token was updated, false if no token source is available.
|
|
847
843
|
*/
|
|
848
844
|
declare function refreshSocketAuth(): boolean;
|
|
@@ -864,6 +860,16 @@ declare const socketEmit: {
|
|
|
864
860
|
getTypingUsers(conversationId: string): Promise<unknown>;
|
|
865
861
|
};
|
|
866
862
|
|
|
863
|
+
type TransitAlgo = 'x25519' | 'p256';
|
|
864
|
+
|
|
865
|
+
interface TransitSession {
|
|
866
|
+
sessionKey: CryptoKey;
|
|
867
|
+
algo: TransitAlgo;
|
|
868
|
+
sessionId: string;
|
|
869
|
+
enabled: boolean;
|
|
870
|
+
}
|
|
871
|
+
declare function setTransitSession(session: TransitSession): void;
|
|
872
|
+
|
|
867
873
|
interface AuthState {
|
|
868
874
|
user: User | null;
|
|
869
875
|
tokens: AuthTokens | null;
|
|
@@ -1062,7 +1068,7 @@ declare class AntzChatClient {
|
|
|
1062
1068
|
createDirect(payload: CreateDirectData): Promise<Conversation>;
|
|
1063
1069
|
update(conversationId: string, payload: UpdateConversationData): Promise<Conversation>;
|
|
1064
1070
|
delete(conversationId: string): Promise<void>;
|
|
1065
|
-
addParticipants(conversationId: string, userIds: string[]): Promise<Conversation>;
|
|
1071
|
+
addParticipants(conversationId: string, userIds: string[], role?: "admin" | "member"): Promise<Conversation>;
|
|
1066
1072
|
removeParticipant(conversationId: string, userId: string): Promise<Conversation>;
|
|
1067
1073
|
updateParticipantRole(conversationId: string, userId: string, role: "admin" | "member"): Promise<Conversation>;
|
|
1068
1074
|
mute(conversationId: string, mutedUntil?: string): Promise<void>;
|
|
@@ -1122,4 +1128,4 @@ declare class AntzChatClient {
|
|
|
1122
1128
|
uploadIcon(conversationId: string, file: UploadableFile): Promise<Conversation>;
|
|
1123
1129
|
}
|
|
1124
1130
|
|
|
1125
|
-
export { AntzChatClient, type AntzChatConfig, type AppConfig, type Attachment, type AuthResponse, type AuthTokens, type BatchUploadResult, type CompressedFile, type CompressionAlgorithm, type CompressionConfig, type Conversation, type ConversationListParams, type ConversationUnreadCount, type CreateDirectData, type CreateGroupData, type CursorPaginatedResponse, type
|
|
1131
|
+
export { AntzChatClient, type AntzChatConfig, type AppConfig, type Attachment, type AuthResponse, type AuthTokens, type BatchUploadResult, type CompressedFile, type CompressionAlgorithm, type CompressionConfig, type Conversation, type ConversationListParams, type ConversationUnreadCount, type CreateDirectData, type CreateGroupData, type CursorPaginatedResponse, type FileResponse, type FileSizeLimits, type FileType, type LastReadEntry, type ListMessagesParams, type LoginCredentials, type Message, type MessageAckEvent, type MessageContent, type MessageDeletedEvent, type MessageDeletedForMeEvent, type MessageDeliveredEvent, type MessageReaction, type MessageReplyReference, type MessageUpdatedEvent, type MessagesDeliveredEvent, type MobileDeviceToken, type NewMessageEvent, type OptimisticAttachment, type PaginatedResponse, type Participant, type PersistStorage, type PlatformCompressFn, type PlatformUploadFn, type PresignedUrlRequest, type PresignedUrlResponse, type QuietHours, type ReactionUpdatedEvent, type ReadReceiptEvent, type RegisterData, type RegisterDeviceTokenPayload, type ReplyAttachmentSnapshot, type ResolvedCompressionConfig, type ResolvedConfig, type ResolvedFileSizeLimits, type SearchParams, type SendData, type SendMessageAttachment, type SendMessagePayload, type SocketStatus, type StatusListener, type TokenStore, type TypingIndicatorEvent, type UnreadSummary, type UpdateConversationData, type UploadConfig, type UploadProgress, type UploadableFile, type User, type UserPreferences, type UserStatusEvent, type WebPushDeviceToken, appConfigApi, authApi, connectSocket, conversationsApi, createAuthStore, devicesApi, disconnectSocket, getApiClient, getAuthStore, getCompressionStrategy, getSocket, getSocketStatus, initApiClient, initAuthStore, messagesApi, normalizeConversation, onSocketStatus, reconnectSocket, refreshSocketAuth, resetAuthStore, resolveConfig, setApiClientInstance, setTransitSession, socketEmit, storageApi, tryGetSocket, uploadBatch, useChatStore, usersApi };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { Socket } from 'socket.io-client';
|
|
|
3
3
|
import * as zustand_middleware from 'zustand/middleware';
|
|
4
4
|
import * as zustand from 'zustand';
|
|
5
5
|
|
|
6
|
-
type EncryptionMode = 'none' | 'server' | 'e2ee';
|
|
7
6
|
type FileType = 'image' | 'video' | 'audio' | 'document';
|
|
8
7
|
type ConversationType = 'direct' | 'group';
|
|
9
8
|
type MessageStatus = 'sent' | 'delivered' | 'read' | 'failed' | 'deleted';
|
|
@@ -79,17 +78,6 @@ interface Attachment {
|
|
|
79
78
|
isUploading?: boolean;
|
|
80
79
|
uploadProgress?: number;
|
|
81
80
|
}
|
|
82
|
-
interface EncryptedContent {
|
|
83
|
-
ciphertext: string;
|
|
84
|
-
iv: string;
|
|
85
|
-
tag: string;
|
|
86
|
-
algorithm: 'aes-256-gcm';
|
|
87
|
-
}
|
|
88
|
-
interface EncryptionKeyInfo {
|
|
89
|
-
key: string;
|
|
90
|
-
enabled: boolean;
|
|
91
|
-
mode: EncryptionMode;
|
|
92
|
-
}
|
|
93
81
|
interface MessageReaction {
|
|
94
82
|
emoji: string;
|
|
95
83
|
userIds: string[];
|
|
@@ -100,10 +88,23 @@ interface MessageContent {
|
|
|
100
88
|
type: 'text' | 'attachment' | 'system';
|
|
101
89
|
attachments?: Attachment[];
|
|
102
90
|
}
|
|
91
|
+
interface ReplyAttachmentSnapshot {
|
|
92
|
+
type: FileType;
|
|
93
|
+
filename: string;
|
|
94
|
+
mimeType: string;
|
|
95
|
+
size: number;
|
|
96
|
+
duration?: number;
|
|
97
|
+
dimensions?: {
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
};
|
|
101
|
+
url: string;
|
|
102
|
+
}
|
|
103
103
|
interface MessageReplyReference {
|
|
104
104
|
messageId?: string;
|
|
105
105
|
contentPreview?: string;
|
|
106
106
|
senderName?: string;
|
|
107
|
+
attachmentSnapshot?: ReplyAttachmentSnapshot;
|
|
107
108
|
id?: string;
|
|
108
109
|
content?: MessageContent;
|
|
109
110
|
sender?: Pick<User, 'displayName' | 'avatarUrl'>;
|
|
@@ -136,9 +137,6 @@ interface Message {
|
|
|
136
137
|
userId: string;
|
|
137
138
|
deliveredAt: string;
|
|
138
139
|
}>;
|
|
139
|
-
isEncrypted?: boolean;
|
|
140
|
-
encryptionMode?: EncryptionMode;
|
|
141
|
-
encryptedContent?: EncryptedContent;
|
|
142
140
|
}
|
|
143
141
|
interface Participant {
|
|
144
142
|
userId: string;
|
|
@@ -175,9 +173,6 @@ interface Conversation {
|
|
|
175
173
|
isPinned?: boolean;
|
|
176
174
|
isMuted?: boolean;
|
|
177
175
|
mutedUntil?: string;
|
|
178
|
-
encryptionMode?: EncryptionMode;
|
|
179
|
-
isEncryptionEnabled?: boolean;
|
|
180
|
-
encryptionKey?: string;
|
|
181
176
|
}
|
|
182
177
|
interface AppConfig {
|
|
183
178
|
maxPinnedConversations: number;
|
|
@@ -247,6 +242,7 @@ interface PresignedUrlRequest {
|
|
|
247
242
|
size: number;
|
|
248
243
|
conversationId?: string;
|
|
249
244
|
folder?: string;
|
|
245
|
+
metadata?: Record<string, unknown>;
|
|
250
246
|
}
|
|
251
247
|
interface PresignedUrlResponse {
|
|
252
248
|
fileId: string;
|
|
@@ -375,8 +371,6 @@ interface SendMessagePayload {
|
|
|
375
371
|
attachments?: SendMessageAttachment[];
|
|
376
372
|
replyTo?: string;
|
|
377
373
|
tempId: string;
|
|
378
|
-
encryptedContent?: EncryptedContent;
|
|
379
|
-
isEncrypted?: boolean;
|
|
380
374
|
}
|
|
381
375
|
interface QuietHours {
|
|
382
376
|
enabled: boolean;
|
|
@@ -509,8 +503,14 @@ interface AntzChatConfig {
|
|
|
509
503
|
};
|
|
510
504
|
/** Required for multi-tenant backends. Sent as X-Tenant-ID header. */
|
|
511
505
|
tenantId?: string;
|
|
512
|
-
/**
|
|
513
|
-
|
|
506
|
+
/**
|
|
507
|
+
* Enable payload-level transit encryption (ECDH key exchange + AES-256-GCM).
|
|
508
|
+
* Encrypts every HTTP request/response body and every socket event payload.
|
|
509
|
+
* Server must have TRANSIT_ENCRYPTION_ENABLED=true to match.
|
|
510
|
+
* Default: true — set false only for local development/debugging.
|
|
511
|
+
* Safe to toggle anytime — no data migration needed (wire-only, never affects storage).
|
|
512
|
+
*/
|
|
513
|
+
transitEncryption?: boolean;
|
|
514
514
|
upload?: UploadConfig;
|
|
515
515
|
/**
|
|
516
516
|
* Optional compression config. Compression is disabled if platformCompressFn is not provided.
|
|
@@ -567,7 +567,7 @@ interface ResolvedConfig {
|
|
|
567
567
|
url?: string;
|
|
568
568
|
base64?: string;
|
|
569
569
|
};
|
|
570
|
-
|
|
570
|
+
transitEncryption: boolean;
|
|
571
571
|
upload: {
|
|
572
572
|
maxFileSizeMB: ResolvedFileSizeLimits;
|
|
573
573
|
maxFilesPerMessage: number;
|
|
@@ -626,7 +626,6 @@ interface SendData {
|
|
|
626
626
|
attachments?: SendMessagePayload['attachments'];
|
|
627
627
|
replyTo?: string;
|
|
628
628
|
tempId?: string;
|
|
629
|
-
isEncrypted?: boolean;
|
|
630
629
|
}
|
|
631
630
|
declare const messagesApi: {
|
|
632
631
|
list(conversationId: string, params?: ListMessagesParams): Promise<CursorPaginatedResponse<Message>>;
|
|
@@ -675,7 +674,7 @@ declare const conversationsApi: {
|
|
|
675
674
|
createDirect(payload: CreateDirectData): Promise<Conversation>;
|
|
676
675
|
update(conversationId: string, payload: UpdateConversationData): Promise<Conversation>;
|
|
677
676
|
delete(conversationId: string): Promise<void>;
|
|
678
|
-
addParticipants(conversationId: string, userIds: string[]): Promise<Conversation>;
|
|
677
|
+
addParticipants(conversationId: string, userIds: string[], role?: "admin" | "member"): Promise<Conversation>;
|
|
679
678
|
removeParticipant(conversationId: string, userId: string): Promise<Conversation>;
|
|
680
679
|
updateParticipantRole(conversationId: string, userId: string, role: "admin" | "member"): Promise<Conversation>;
|
|
681
680
|
mute(conversationId: string, mutedUntil?: string): Promise<void>;
|
|
@@ -839,10 +838,7 @@ declare function disconnectSocket(): void;
|
|
|
839
838
|
declare function reconnectSocket(token: string, userId?: string, tenantId?: string): void;
|
|
840
839
|
/**
|
|
841
840
|
* Updates the socket auth token from the stored getToken function and reconnects.
|
|
842
|
-
* Called by SocketProvider on connect_error to handle expired-token scenarios
|
|
843
|
-
* 1. Token expired while disconnected → server rejects the reconnect handshake
|
|
844
|
-
* 2. authProvider returns a fresh token → we update socket auth and retry
|
|
845
|
-
*
|
|
841
|
+
* Called by SocketProvider on connect_error to handle expired-token scenarios.
|
|
846
842
|
* Returns true if the token was updated, false if no token source is available.
|
|
847
843
|
*/
|
|
848
844
|
declare function refreshSocketAuth(): boolean;
|
|
@@ -864,6 +860,16 @@ declare const socketEmit: {
|
|
|
864
860
|
getTypingUsers(conversationId: string): Promise<unknown>;
|
|
865
861
|
};
|
|
866
862
|
|
|
863
|
+
type TransitAlgo = 'x25519' | 'p256';
|
|
864
|
+
|
|
865
|
+
interface TransitSession {
|
|
866
|
+
sessionKey: CryptoKey;
|
|
867
|
+
algo: TransitAlgo;
|
|
868
|
+
sessionId: string;
|
|
869
|
+
enabled: boolean;
|
|
870
|
+
}
|
|
871
|
+
declare function setTransitSession(session: TransitSession): void;
|
|
872
|
+
|
|
867
873
|
interface AuthState {
|
|
868
874
|
user: User | null;
|
|
869
875
|
tokens: AuthTokens | null;
|
|
@@ -1062,7 +1068,7 @@ declare class AntzChatClient {
|
|
|
1062
1068
|
createDirect(payload: CreateDirectData): Promise<Conversation>;
|
|
1063
1069
|
update(conversationId: string, payload: UpdateConversationData): Promise<Conversation>;
|
|
1064
1070
|
delete(conversationId: string): Promise<void>;
|
|
1065
|
-
addParticipants(conversationId: string, userIds: string[]): Promise<Conversation>;
|
|
1071
|
+
addParticipants(conversationId: string, userIds: string[], role?: "admin" | "member"): Promise<Conversation>;
|
|
1066
1072
|
removeParticipant(conversationId: string, userId: string): Promise<Conversation>;
|
|
1067
1073
|
updateParticipantRole(conversationId: string, userId: string, role: "admin" | "member"): Promise<Conversation>;
|
|
1068
1074
|
mute(conversationId: string, mutedUntil?: string): Promise<void>;
|
|
@@ -1122,4 +1128,4 @@ declare class AntzChatClient {
|
|
|
1122
1128
|
uploadIcon(conversationId: string, file: UploadableFile): Promise<Conversation>;
|
|
1123
1129
|
}
|
|
1124
1130
|
|
|
1125
|
-
export { AntzChatClient, type AntzChatConfig, type AppConfig, type Attachment, type AuthResponse, type AuthTokens, type BatchUploadResult, type CompressedFile, type CompressionAlgorithm, type CompressionConfig, type Conversation, type ConversationListParams, type ConversationUnreadCount, type CreateDirectData, type CreateGroupData, type CursorPaginatedResponse, type
|
|
1131
|
+
export { AntzChatClient, type AntzChatConfig, type AppConfig, type Attachment, type AuthResponse, type AuthTokens, type BatchUploadResult, type CompressedFile, type CompressionAlgorithm, type CompressionConfig, type Conversation, type ConversationListParams, type ConversationUnreadCount, type CreateDirectData, type CreateGroupData, type CursorPaginatedResponse, type FileResponse, type FileSizeLimits, type FileType, type LastReadEntry, type ListMessagesParams, type LoginCredentials, type Message, type MessageAckEvent, type MessageContent, type MessageDeletedEvent, type MessageDeletedForMeEvent, type MessageDeliveredEvent, type MessageReaction, type MessageReplyReference, type MessageUpdatedEvent, type MessagesDeliveredEvent, type MobileDeviceToken, type NewMessageEvent, type OptimisticAttachment, type PaginatedResponse, type Participant, type PersistStorage, type PlatformCompressFn, type PlatformUploadFn, type PresignedUrlRequest, type PresignedUrlResponse, type QuietHours, type ReactionUpdatedEvent, type ReadReceiptEvent, type RegisterData, type RegisterDeviceTokenPayload, type ReplyAttachmentSnapshot, type ResolvedCompressionConfig, type ResolvedConfig, type ResolvedFileSizeLimits, type SearchParams, type SendData, type SendMessageAttachment, type SendMessagePayload, type SocketStatus, type StatusListener, type TokenStore, type TypingIndicatorEvent, type UnreadSummary, type UpdateConversationData, type UploadConfig, type UploadProgress, type UploadableFile, type User, type UserPreferences, type UserStatusEvent, type WebPushDeviceToken, appConfigApi, authApi, connectSocket, conversationsApi, createAuthStore, devicesApi, disconnectSocket, getApiClient, getAuthStore, getCompressionStrategy, getSocket, getSocketStatus, initApiClient, initAuthStore, messagesApi, normalizeConversation, onSocketStatus, reconnectSocket, refreshSocketAuth, resetAuthStore, resolveConfig, setApiClientInstance, setTransitSession, socketEmit, storageApi, tryGetSocket, uploadBatch, useChatStore, usersApi };
|