@antzsoft/chat-core 1.1.4 → 1.1.6

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/dist/index.d.ts CHANGED
@@ -1,590 +1,10 @@
1
+ import { J as ResolvedCompressionConfig, m as LoginCredentials, c as AuthResponse, H as RegisterData, d as AuthTokens, _ as User, a as AppConfig, U as SendMessagePayload, j as CursorPaginatedResponse, M as Message, P as PaginatedResponse, h as ConversationListParams, g as Conversation, w as Participant, i as ConversationUnreadCount, W as UnreadSummary, $ as UserPreferences, K as ResolvedConfig, x as PersistStorage, D as PresignedUrlRequest, E as PresignedUrlResponse, F as FileResponse, l as FileType, A as AntzChatConfig, Z as UploadableFile, B as BatchUploadResult } from './storage-Dc0__sXE.js';
2
+ export { b as Attachment, C as CompressedFile, e as CompressionAlgorithm, f as CompressionConfig, k as FileSizeLimits, L as LastReaction, n as MessageAckEvent, o as MessageContent, p as MessageDeletedEvent, q as MessageDeletedForMeEvent, r as MessageDeliveredEvent, s as MessageReaction, t as MessageReplyReference, u as MessageUpdatedEvent, v as MessagesDeliveredEvent, N as NewMessageEvent, O as OptimisticAttachment, y as PlatformCompressFn, z as PlatformUploadFn, Q as QuietHours, R as ReactionUpdatedEvent, G as ReadReceiptEvent, I as ReplyAttachmentSnapshot, S as ResolvedFileSizeLimits, T as SendMessageAttachment, V as TypingIndicatorEvent, X as UploadConfig, Y as UploadProgress, a0 as UserStatusEvent, a1 as resolveConfig, a2 as storageApi, a3 as uploadBatch } from './storage-Dc0__sXE.js';
1
3
  import { AxiosInstance } from 'axios';
2
4
  import { Socket } from 'socket.io-client';
3
5
  import * as zustand_middleware from 'zustand/middleware';
4
6
  import * as zustand from 'zustand';
5
7
 
6
- type FileType = 'image' | 'video' | 'audio' | 'document';
7
- type ConversationType = 'direct' | 'group';
8
- type MessageStatus = 'sent' | 'delivered' | 'read' | 'failed' | 'deleted';
9
- type DeliveryStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
10
- type UserStatus = 'online' | 'offline' | 'away';
11
- type ParticipantRole = 'admin' | 'member';
12
- /**
13
- * Platform-agnostic file descriptor.
14
- * - Web: built from a browser File object ({ uri: URL.createObjectURL(f), name: f.name, type: f.type, size: f.size })
15
- * - React Native: built from document/image picker result ({ uri: result.uri, name: result.name, type: result.mimeType, size: result.size })
16
- */
17
- interface UploadableFile {
18
- /** Local URI — blob URL on web, file:// URI on RN */
19
- uri: string;
20
- name: string;
21
- /** MIME type, e.g. "image/jpeg" */
22
- type: string;
23
- size: number;
24
- }
25
- interface User {
26
- id: string;
27
- externalId?: string;
28
- tenantId: string;
29
- email: string;
30
- username: string;
31
- firstName?: string;
32
- lastName?: string;
33
- displayName: string;
34
- avatarUrl?: string;
35
- phone?: string;
36
- status: UserStatus;
37
- lastSeenAt?: string;
38
- createdAt: string;
39
- updatedAt: string;
40
- }
41
- interface AuthTokens {
42
- accessToken: string;
43
- refreshToken: string;
44
- tokenType: string;
45
- expiresIn: number;
46
- }
47
- interface AuthResponse {
48
- user: User;
49
- tokens: AuthTokens;
50
- }
51
- interface LoginCredentials {
52
- email: string;
53
- password: string;
54
- }
55
- interface RegisterData {
56
- email: string;
57
- password: string;
58
- username: string;
59
- firstName: string;
60
- lastName: string;
61
- displayName?: string;
62
- phone?: string;
63
- tenantId?: string;
64
- }
65
- interface Attachment {
66
- id: string;
67
- type: FileType;
68
- url: string;
69
- thumbnailUrl?: string;
70
- filename: string;
71
- mimeType: string;
72
- size: number;
73
- dimensions?: {
74
- width: number;
75
- height: number;
76
- };
77
- duration?: number;
78
- isUploading?: boolean;
79
- uploadProgress?: number;
80
- }
81
- interface MessageReaction {
82
- emoji: string;
83
- userIds: string[];
84
- count: number;
85
- }
86
- interface MessageContent {
87
- text?: string;
88
- type: 'text' | 'attachment' | 'system';
89
- attachments?: Attachment[];
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
- interface MessageReplyReference {
104
- messageId?: string;
105
- contentPreview?: string;
106
- senderName?: string;
107
- attachmentSnapshot?: ReplyAttachmentSnapshot;
108
- id?: string;
109
- content?: MessageContent;
110
- sender?: Pick<User, 'displayName' | 'avatarUrl'>;
111
- }
112
- interface Message {
113
- id: string;
114
- tenantId: string;
115
- conversationId: string;
116
- senderId: string;
117
- content: MessageContent;
118
- replyTo?: MessageReplyReference;
119
- reactions: MessageReaction[];
120
- status: MessageStatus;
121
- deliveryStatus?: DeliveryStatus;
122
- isEdited: boolean;
123
- editedAt?: string;
124
- isStarred?: boolean;
125
- isPinned?: boolean;
126
- pinnedBy?: string;
127
- pinnedAt?: string;
128
- uploadProgress?: number;
129
- sentAt: string;
130
- createdAt: string;
131
- sender?: User;
132
- readBy?: Array<{
133
- userId: string;
134
- readAt: string;
135
- }>;
136
- deliveredTo?: Array<{
137
- userId: string;
138
- deliveredAt: string;
139
- }>;
140
- }
141
- interface Participant {
142
- userId: string;
143
- role: ParticipantRole;
144
- joinedAt: string;
145
- isActive?: boolean;
146
- user?: User;
147
- }
148
- interface MessageConfig {
149
- editWindowSeconds?: number;
150
- deleteWindowSeconds?: number;
151
- }
152
- interface ConversationSettings {
153
- onlyAdminsCanMessage?: boolean;
154
- onlyAdminsCanAddMembers?: boolean;
155
- messageConfig?: MessageConfig;
156
- }
157
- interface Conversation {
158
- id: string;
159
- tenantId: string;
160
- conversationType: ConversationType;
161
- name?: string;
162
- description?: string;
163
- iconUrl?: string;
164
- participants: Participant[];
165
- participantCount?: number;
166
- settings?: ConversationSettings;
167
- lastMessage?: Message;
168
- createdBy?: string;
169
- isActive: boolean;
170
- createdAt: string;
171
- updatedAt: string;
172
- unreadCount?: number;
173
- isPinned?: boolean;
174
- isMuted?: boolean;
175
- mutedUntil?: string;
176
- }
177
- interface AppConfig {
178
- maxPinnedConversations: number;
179
- }
180
- interface ConversationUnreadCount {
181
- conversationId: string;
182
- unreadCount: number;
183
- }
184
- interface UnreadSummary {
185
- /** Total unread messages across all conversations */
186
- totalUnread: number;
187
- /** Per-conversation breakdown — only includes conversations with unread > 0 */
188
- byConversation: ConversationUnreadCount[];
189
- }
190
- interface ConversationListParams {
191
- page?: number;
192
- limit?: number;
193
- /** Filter by conversation type */
194
- type?: ConversationType;
195
- /** Only pinned (true) or unpinned (false) conversations */
196
- isPinned?: boolean;
197
- /** Only muted (true) or unmuted (false) conversations */
198
- isMuted?: boolean;
199
- /** Only conversations with unread messages */
200
- hasUnread?: boolean;
201
- /** Search by group name / description (text index) */
202
- search?: string;
203
- /** Filter by current user's role in the conversation */
204
- role?: ParticipantRole;
205
- /** Filter by whether the last message has attachments */
206
- hasAttachments?: boolean;
207
- /** Filter by last message attachment type */
208
- attachmentType?: FileType;
209
- /** Filter by notification setting */
210
- notificationsEnabled?: boolean;
211
- }
212
- interface PaginationMeta {
213
- total: number;
214
- page: number;
215
- limit: number;
216
- totalPages: number;
217
- hasNextPage: boolean;
218
- hasPrevPage: boolean;
219
- }
220
- interface PaginatedResponse<T> {
221
- data: T[];
222
- meta: PaginationMeta;
223
- }
224
- interface CursorPaginationMeta {
225
- hasMore: boolean;
226
- nextCursor?: string;
227
- prevCursor?: string;
228
- }
229
- interface CursorPaginatedResponse<T> {
230
- data: T[];
231
- meta: CursorPaginationMeta;
232
- }
233
- type CompressionAlgorithm = 'webp' | 'jpeg' | 'gzip' | 'none';
234
- interface CompressedFile extends UploadableFile {
235
- originalSize: number;
236
- compressed: boolean;
237
- compressionAlgorithm: CompressionAlgorithm;
238
- }
239
- interface PresignedUrlRequest {
240
- filename: string;
241
- mimeType: string;
242
- size: number;
243
- conversationId?: string;
244
- folder?: string;
245
- metadata?: Record<string, unknown>;
246
- }
247
- interface PresignedUrlResponse {
248
- fileId: string;
249
- uploadUrl: string;
250
- method: 'PUT' | 'POST';
251
- headers: Record<string, string>;
252
- fields?: Record<string, string>;
253
- expiresAt: string;
254
- maxSize: number;
255
- allowedMimeType: string;
256
- }
257
- interface FileResponse {
258
- id: string;
259
- filename: string;
260
- originalFilename: string;
261
- mimeType: string;
262
- size: number;
263
- url: string;
264
- thumbnailUrl?: string;
265
- type: FileType;
266
- uploadedAt?: string;
267
- confirmedAt?: string;
268
- }
269
- interface UploadProgress {
270
- fileId: string;
271
- filename: string;
272
- progress: number;
273
- status: 'pending' | 'uploading' | 'confirming' | 'done' | 'error';
274
- error?: string;
275
- }
276
- interface BatchUploadResult {
277
- successful: FileResponse[];
278
- failed: Array<{
279
- filename: string;
280
- error: string;
281
- }>;
282
- }
283
- interface NewMessageEvent {
284
- tempId?: string;
285
- senderName?: string;
286
- senderAvatarUrl?: string;
287
- message: Message;
288
- }
289
- interface MessageUpdatedEvent {
290
- messageId: string;
291
- conversationId: string;
292
- text: string;
293
- editedAt: string;
294
- }
295
- interface MessageDeletedEvent {
296
- messageId: string;
297
- conversationId: string;
298
- }
299
- interface MessageDeletedForMeEvent {
300
- messageId: string;
301
- conversationId: string;
302
- }
303
- interface ReactionUpdatedEvent {
304
- messageId: string;
305
- conversationId: string;
306
- reactions: MessageReaction[];
307
- }
308
- interface TypingIndicatorEvent {
309
- conversationId: string;
310
- userId: string;
311
- username: string;
312
- displayName: string;
313
- avatarUrl?: string;
314
- isTyping: boolean;
315
- }
316
- interface UserStatusEvent {
317
- userId: string;
318
- status: UserStatus;
319
- lastSeenAt?: string;
320
- }
321
- interface ReadReceiptEvent {
322
- conversationId: string;
323
- messageId: string;
324
- userId: string;
325
- readAt: string;
326
- updatedMessageIds?: string[];
327
- fullyReadMessageIds?: string[];
328
- }
329
- interface MessageAckEvent {
330
- tempId: string;
331
- messageId: string;
332
- status: MessageStatus;
333
- }
334
- interface MessageDeliveredEvent {
335
- messageId: string;
336
- conversationId: string;
337
- deliveredTo: Array<{
338
- userId: string;
339
- deliveredAt: Date;
340
- }>;
341
- }
342
- interface MessagesDeliveredEvent {
343
- conversationId: string;
344
- messageIds: string[];
345
- deliveredTo: string;
346
- deliveredAt: string;
347
- }
348
- interface SendMessageAttachment {
349
- fileId: string;
350
- type: FileType;
351
- url: string;
352
- thumbnailUrl?: string;
353
- filename: string;
354
- mimeType: string;
355
- size: number;
356
- duration?: number;
357
- }
358
- interface OptimisticAttachment extends SendMessageAttachment {
359
- id: string;
360
- url: string;
361
- thumbnailUrl?: string;
362
- filename: string;
363
- mimeType: string;
364
- size: number;
365
- isUploading?: boolean;
366
- uploadProgress?: number;
367
- }
368
- interface SendMessagePayload {
369
- conversationId: string;
370
- text?: string;
371
- attachments?: SendMessageAttachment[];
372
- replyTo?: string;
373
- tempId: string;
374
- }
375
- interface QuietHours {
376
- enabled: boolean;
377
- /** HH:MM — e.g. "22:00" */
378
- start: string;
379
- /** HH:MM — e.g. "08:00" */
380
- end: string;
381
- /** IANA timezone — e.g. "Asia/Kolkata" */
382
- timezone: string;
383
- }
384
- /**
385
- * User notification preferences stored in chat_user_prefs.
386
- * All fields are optional on update — only send what changed.
387
- * Any future preference field is added here and to the server schema;
388
- * no new collections or API endpoints needed.
389
- */
390
- interface UserPreferences {
391
- /** Master switch — false disables all push notifications */
392
- notificationsEnabled?: boolean;
393
- /** Play sound with notifications */
394
- soundEnabled?: boolean;
395
- /** Show message text in notification body (false = show "New message" only) */
396
- messagePreview?: boolean;
397
- /** Notify when @mentioned in a group */
398
- notifyOnMention?: boolean;
399
- /** Notify when someone reacts to your message */
400
- notifyOnReaction?: boolean;
401
- /** Notify when added to a group */
402
- notifyOnGroupInvite?: boolean;
403
- /** Quiet hours window — no push delivered during this period */
404
- quietHours?: QuietHours;
405
- }
406
-
407
- interface FileSizeLimits {
408
- image?: number;
409
- video?: number;
410
- audio?: number;
411
- document?: number;
412
- default?: number;
413
- }
414
- /**
415
- * Platform-provided function that performs the actual binary upload to a presigned URL.
416
- * - Web implementation: XMLHttpRequest with progress events
417
- * - RN implementation: fetch with FormData or direct body
418
- *
419
- * The core calls this — it never does the upload itself.
420
- */
421
- type PlatformUploadFn = (presigned: PresignedUrlResponse, file: UploadableFile, onProgress?: (pct: number) => void) => Promise<void>;
422
- /**
423
- * Platform-provided persistent key-value storage for auth token persistence.
424
- * - Web: localStorage adapter
425
- * - RN: AsyncStorage adapter
426
- */
427
- interface PersistStorage {
428
- getItem(key: string): string | null | Promise<string | null>;
429
- setItem(key: string, value: string): void | Promise<void>;
430
- removeItem(key: string): void | Promise<void>;
431
- }
432
- /**
433
- * Platform-provided compression function. Optional — if omitted, files are uploaded as-is.
434
- * - Web: uses canvas (images) + CompressionStream (text/docs) — both browser-native
435
- * - RN: uses expo-image-manipulator (images) + pako (text/docs)
436
- * - Node: uses sharp (images) + zlib (text/docs)
437
- */
438
- type PlatformCompressFn = (file: UploadableFile, options: ResolvedCompressionConfig) => Promise<CompressedFile>;
439
- interface CompressionConfig {
440
- /** Master switch. Default: true when platformCompressFn is provided, false otherwise */
441
- enabled?: boolean;
442
- /** WebP quality for images, 0–1. Default: 0.85 */
443
- imageQuality?: number;
444
- /** Longest side cap in px before encoding. Default: 1920 */
445
- imageMaxDimension?: number;
446
- /** Gzip text-based documents (plain, csv, json, xml, yaml, svg). Default: true */
447
- compressDocuments?: boolean;
448
- }
449
- interface ResolvedCompressionConfig {
450
- enabled: boolean;
451
- imageQuality: number;
452
- imageMaxDimension: number;
453
- compressDocuments: boolean;
454
- }
455
- interface UploadConfig {
456
- /**
457
- * Per-type file size limits in MB. Can also pass a single number for all types.
458
- * Defaults: image 5MB, video 25MB, audio 10MB, document 10MB.
459
- */
460
- maxFileSizeMB?: number | FileSizeLimits;
461
- /** Max files per message. Default: 10 */
462
- maxFilesPerMessage?: number;
463
- /** Which attachment types users can send. Default: all */
464
- allowedTypes?: Array<FileType>;
465
- /** Called when a file fails validation or upload */
466
- onUploadError?: (file: UploadableFile, error: Error) => void;
467
- /** Called with 0–100 aggregate progress during a batch upload */
468
- onProgress?: (progress: number) => void;
469
- }
470
- interface AntzChatConfig {
471
- /** REST API base URL — e.g. "https://api.yourapp.com/api/v1" */
472
- apiUrl: string;
473
- /**
474
- * WebSocket server URL. Defaults to apiUrl with /api/vN path stripped.
475
- * SDK connects to {socketUrl}/chat
476
- */
477
- socketUrl?: string;
478
- /** Static JWT. Use this OR authProvider, not both. */
479
- authToken?: string;
480
- /**
481
- * Dynamic token getter — called before requests and on socket reconnect.
482
- * Preferred when the host app manages its own auth lifecycle.
483
- */
484
- authProvider?: () => Promise<string>;
485
- /**
486
- * External user ID — required for non-builtin modes (antz / external / wso2).
487
- * Sent as x-user-id header on every request so the chat server can forward it
488
- * to the user-service for token validation.
489
- * Not needed for builtin mode (chat server issues its own JWTs).
490
- */
491
- userId?: string;
492
- /**
493
- * Profile picture for non-builtin modes.
494
- * Server fetches/decodes, hashes for dedup, uploads to chat storage on first use.
495
- * Only sent once at init — not re-sent on every request.
496
- * Client never needs to compute hashes; the server owns all dedup logic.
497
- */
498
- avatar?: {
499
- /** Full URL the server can fetch (preferred — Antz/external/wso2 clients know their own file URLs) */
500
- url?: string;
501
- /** Raw base64 string (with or without data:... prefix) as fallback */
502
- base64?: string;
503
- };
504
- /** Required for multi-tenant backends. Sent as X-Tenant-ID header. */
505
- tenantId?: string;
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
- upload?: UploadConfig;
515
- /**
516
- * Optional compression config. Compression is disabled if platformCompressFn is not provided.
517
- */
518
- compression?: CompressionConfig;
519
- /**
520
- * Platform-specific compression implementation. Optional — omit to disable compression.
521
- * Each SDK (web, RN) provides its own default; Node.js users wire in their own.
522
- */
523
- platformCompressFn?: PlatformCompressFn;
524
- /**
525
- * Number of messages fetched per page when loading chat history.
526
- * Default: 40
527
- */
528
- messagePageSize?: number;
529
- /**
530
- * Number of starred messages fetched per page.
531
- * Default: 30
532
- */
533
- starredMessagePageSize?: number;
534
- /**
535
- * Number of search results fetched per request.
536
- * Default: 50
537
- */
538
- searchPageSize?: number;
539
- /**
540
- * Platform-specific binary upload implementation.
541
- * Required — each SDK (web, RN) provides its own.
542
- */
543
- platformUploadFn: PlatformUploadFn;
544
- /**
545
- * Platform-specific persistent storage for auth tokens.
546
- * Required — each SDK provides its own (localStorage / AsyncStorage).
547
- */
548
- persistStorage: PersistStorage;
549
- }
550
- interface ResolvedFileSizeLimits {
551
- image: number;
552
- video: number;
553
- audio: number;
554
- document: number;
555
- default: number;
556
- }
557
- interface ResolvedConfig {
558
- apiUrl: string;
559
- socketUrl: string;
560
- socketOrigin: string;
561
- socketPath: string;
562
- authToken?: string;
563
- authProvider?: () => Promise<string>;
564
- userId?: string;
565
- tenantId?: string;
566
- avatar?: {
567
- url?: string;
568
- base64?: string;
569
- };
570
- transitEncryption: boolean;
571
- upload: {
572
- maxFileSizeMB: ResolvedFileSizeLimits;
573
- maxFilesPerMessage: number;
574
- allowedTypes: FileType[];
575
- onUploadError?: (file: UploadableFile, error: Error) => void;
576
- onProgress?: (progress: number) => void;
577
- };
578
- platformUploadFn: PlatformUploadFn;
579
- platformCompressFn?: PlatformCompressFn;
580
- compression: ResolvedCompressionConfig;
581
- persistStorage: PersistStorage;
582
- messagePageSize: number;
583
- starredMessagePageSize: number;
584
- searchPageSize: number;
585
- }
586
- declare function resolveConfig(config: AntzChatConfig): ResolvedConfig;
587
-
588
8
  type CompressionStrategy = 'image' | 'gzip' | 'skip';
589
9
  declare function getCompressionStrategy(mimeType: string, config: ResolvedCompressionConfig): CompressionStrategy;
590
10
 
@@ -704,42 +124,6 @@ declare const conversationsApi: {
704
124
  removeIcon(conversationId: string): Promise<Conversation>;
705
125
  };
706
126
 
707
- declare const storageApi: {
708
- requestPresignedUrl(payload: PresignedUrlRequest): Promise<PresignedUrlResponse>;
709
- requestPresignedUrlBatch(files: PresignedUrlRequest[]): Promise<{
710
- urls: PresignedUrlResponse[];
711
- errors: Array<{
712
- filename: string;
713
- error: string;
714
- }>;
715
- }>;
716
- confirmUpload(fileId: string): Promise<FileResponse>;
717
- getFile(fileId: string): Promise<FileResponse>;
718
- getFileUrl(fileId: string, expiresIn?: number): Promise<{
719
- url: string;
720
- expiresAt: string;
721
- }>;
722
- deleteFile(fileId: string): Promise<void>;
723
- getConversationFiles(conversationId: string, params?: {
724
- page?: number;
725
- limit?: number;
726
- type?: FileType;
727
- }): Promise<PaginatedResponse<FileResponse>>;
728
- getMyFiles(params?: {
729
- page?: number;
730
- limit?: number;
731
- }): Promise<PaginatedResponse<FileResponse>>;
732
- };
733
- /**
734
- * High-level batch upload.
735
- * The actual binary transfer is delegated to platformUploadFn so this
736
- * function is platform-agnostic (works on web and React Native).
737
- * If platformCompressFn + compressionConfig are provided, each file is
738
- * compressed before the presigned URL is requested (so the server receives
739
- * the correct compressed size and MIME type).
740
- */
741
- declare function uploadBatch(files: UploadableFile[], platformUploadFn: PlatformUploadFn, conversationId?: string, onProgress?: (pct: number) => void, platformCompressFn?: PlatformCompressFn, compressionConfig?: ResolvedCompressionConfig): Promise<BatchUploadResult>;
742
-
743
127
  /** Shared fields for every device registration. */
744
128
  interface DeviceTokenBase {
745
129
  /**
@@ -1121,6 +505,7 @@ declare class AntzChatClient {
1121
505
  errors: Array<{
1122
506
  filename: string;
1123
507
  error: string;
508
+ clientIndex?: number;
1124
509
  }>;
1125
510
  }>;
1126
511
  confirmUpload(fileId: string): Promise<FileResponse>;
@@ -1162,4 +547,4 @@ declare class AntzChatClient {
1162
547
  uploadIcon(conversationId: string, file: UploadableFile): Promise<Conversation>;
1163
548
  }
1164
549
 
1165
- 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 UpdateProfilePayload, 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 };
550
+ export { AntzChatClient, AntzChatConfig, AppConfig, AuthResponse, AuthTokens, BatchUploadResult, Conversation, ConversationListParams, ConversationUnreadCount, type CreateDirectData, type CreateGroupData, CursorPaginatedResponse, FileResponse, FileType, type LastReadEntry, type ListMessagesParams, LoginCredentials, Message, type MobileDeviceToken, PaginatedResponse, Participant, PersistStorage, PresignedUrlRequest, PresignedUrlResponse, RegisterData, type RegisterDeviceTokenPayload, ResolvedCompressionConfig, ResolvedConfig, type SearchParams, type SendData, SendMessagePayload, type SocketStatus, type StatusListener, type TokenStore, UnreadSummary, type UpdateConversationData, type UpdateProfilePayload, UploadableFile, User, UserPreferences, type WebPushDeviceToken, appConfigApi, authApi, connectSocket, conversationsApi, createAuthStore, devicesApi, disconnectSocket, getApiClient, getAuthStore, getCompressionStrategy, getSocket, getSocketStatus, initApiClient, initAuthStore, messagesApi, normalizeConversation, onSocketStatus, reconnectSocket, refreshSocketAuth, resetAuthStore, setApiClientInstance, setTransitSession, socketEmit, tryGetSocket, useChatStore, usersApi };