@acorex-platform/module-conversation-client 0.0.21

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.
Files changed (35) hide show
  1. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DsjrXRZ6.mjs +12766 -0
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DsjrXRZ6.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-conversation-client-after-message-sent.command-D-DZ9ylV.mjs +35 -0
  4. package/fesm2022/acorex-platform-module-conversation-client-after-message-sent.command-D-DZ9ylV.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BfjJCQ-e.mjs +492 -0
  6. package/fesm2022/acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-BfjJCQ-e.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs +120 -0
  8. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.mjs +871 -0
  10. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-conversation-client-chat-call-start-popup.component-D4go5xbr.mjs +89 -0
  12. package/fesm2022/acorex-platform-module-conversation-client-chat-call-start-popup.component-D4go5xbr.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs +108 -0
  14. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-conversation-client-comments-page.component-Bq4SdK0_.mjs +83 -0
  16. package/fesm2022/acorex-platform-module-conversation-client-comments-page.component-Bq4SdK0_.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +225 -0
  18. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-conversation-client-emit-typing-indicator.command-BzsN1_ns.mjs +29 -0
  20. package/fesm2022/acorex-platform-module-conversation-client-emit-typing-indicator.command-BzsN1_ns.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-conversation-client-mark-conversation-unread.command-BlYDwGVe.mjs +30 -0
  22. package/fesm2022/acorex-platform-module-conversation-client-mark-conversation-unread.command-BlYDwGVe.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs +42 -0
  24. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-conversation-client-retry-assist-response.command-BQLK6F69.mjs +34 -0
  26. package/fesm2022/acorex-platform-module-conversation-client-retry-assist-response.command-BQLK6F69.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-conversation-client-start-direct-chat.command-CfSIVHDu.mjs +80 -0
  28. package/fesm2022/acorex-platform-module-conversation-client-start-direct-chat.command-CfSIVHDu.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B1Z_gZ6O.mjs +142 -0
  30. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B1Z_gZ6O.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-module-conversation-client.mjs +2 -0
  32. package/fesm2022/acorex-platform-module-conversation-client.mjs.map +1 -0
  33. package/package.json +28 -0
  34. package/types/acorex-platform-module-conversation-client-contracts.d.ts +497 -0
  35. package/types/acorex-platform-module-conversation-client.d.ts +1614 -0
@@ -0,0 +1,497 @@
1
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ import { AXMConversationMessage as AXMConversationMessage$1, AXMConversationRoom as AXMConversationRoom$1 } from '@acorex-platform/module-conversation-contracts';
3
+
4
+ interface AXMCommentEntityData {
5
+ entityId: string;
6
+ entityTypeId: string;
7
+ moduleName?: string;
8
+ entityName?: string;
9
+ }
10
+
11
+ declare const AXPConversationMenuKeys: {
12
+ readonly Conversations: "Conversation:Menu:Conversations";
13
+ };
14
+
15
+ /**
16
+ * Collaboration capabilities used by this module.
17
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
18
+ */
19
+ declare const AXPCollaborationPermissionKeys: {
20
+ readonly Access: "Collaboration:Permission:Access";
21
+ readonly MaintainConversations: "Collaboration:Permission:MaintainConversations";
22
+ readonly MaintainMeetings: "Collaboration:Permission:MaintainMeetings";
23
+ readonly MaintainCalendars: "Collaboration:Permission:MaintainCalendars";
24
+ readonly MaintainCommunications: "Collaboration:Permission:MaintainCommunications";
25
+ readonly MaintainReservations: "Collaboration:Permission:MaintainReservations";
26
+ readonly MaintainHelpDesk: "Collaboration:Permission:MaintainHelpDesk";
27
+ readonly Setup: "Collaboration:Permission:Setup";
28
+ };
29
+ /**
30
+ * @deprecated Prefer {@link AXPCollaborationPermissionKeys}.
31
+ * Legacy nested shape kept so existing imports compile during migration.
32
+ */
33
+ declare const AXMPermissionsKeys: {
34
+ readonly Conversation: {
35
+ readonly Management: "Collaboration:Permission:MaintainConversations";
36
+ };
37
+ };
38
+
39
+ declare const RootConfig: {
40
+ readonly config: {
41
+ i18n: string;
42
+ module: string;
43
+ route: string;
44
+ };
45
+ readonly module: {
46
+ readonly route: "conversation";
47
+ readonly name: string;
48
+ readonly title: `@${string}:module.title`;
49
+ readonly icon: "fa-light fa-comments";
50
+ };
51
+ readonly entities: {
52
+ readonly room: {
53
+ readonly name: "Room";
54
+ readonly title: `t("room.plural-title", { scope: "${string}" })`;
55
+ readonly source: `${string}.Room`;
56
+ readonly icon: "fa-light fa-comments";
57
+ };
58
+ readonly message: {
59
+ readonly name: "Message";
60
+ readonly title: `t("message.plural-title", { scope: "${string}" })`;
61
+ readonly source: `${string}.Message`;
62
+ readonly icon: "fa-light fa-message";
63
+ };
64
+ };
65
+ };
66
+
67
+ /** Fields for one uploaded or remote media item. */
68
+ interface AXMediaItemFields {
69
+ /** HTTP(S) or other persistable URL; omit when only {@link mediaId} is stored. */
70
+ url?: string;
71
+ mediaId?: string;
72
+ mimeType?: string;
73
+ size?: number;
74
+ metadata?: Record<string, unknown>;
75
+ }
76
+ interface AXTextFormat {
77
+ start: number;
78
+ end: number;
79
+ type: 'bold' | 'italic' | 'code' | 'strikethrough' | 'underline' | 'spoiler';
80
+ }
81
+ interface AXMention {
82
+ start: number;
83
+ end: number;
84
+ userId: string;
85
+ userName: string;
86
+ }
87
+ interface AXLink {
88
+ start: number;
89
+ end: number;
90
+ url: string;
91
+ preview?: AXLinkPreview;
92
+ }
93
+ interface AXLinkPreview {
94
+ title?: string;
95
+ description?: string;
96
+ image?: string;
97
+ siteName?: string;
98
+ }
99
+ interface AXTextPayload {
100
+ type: 'text';
101
+ text: string;
102
+ formatting?: AXTextFormat[];
103
+ mentions?: AXMention[];
104
+ links?: AXLink[];
105
+ }
106
+ interface AXImageMediaItem extends AXMediaItemFields {
107
+ thumbnailUrl?: string;
108
+ width: number;
109
+ height: number;
110
+ blurhash?: string;
111
+ }
112
+ interface AXImagePayload {
113
+ type: 'image';
114
+ images: AXImageMediaItem[];
115
+ caption?: string;
116
+ }
117
+ interface AXVideoMediaItem extends AXMediaItemFields {
118
+ thumbnailUrl?: string;
119
+ duration: number;
120
+ width: number;
121
+ height: number;
122
+ }
123
+ interface AXVideoPayload {
124
+ type: 'video';
125
+ videos: AXVideoMediaItem[];
126
+ caption?: string;
127
+ }
128
+ interface AXAudioMediaItem extends AXMediaItemFields {
129
+ duration: number;
130
+ title?: string;
131
+ artist?: string;
132
+ coverUrl?: string;
133
+ waveform?: number[];
134
+ }
135
+ interface AXAudioPayload {
136
+ type: 'audio';
137
+ audios: AXAudioMediaItem[];
138
+ caption?: string;
139
+ }
140
+ interface AXVoicePayload extends AXMediaItemFields {
141
+ type: 'voice';
142
+ duration: number;
143
+ waveform?: number[];
144
+ played?: boolean;
145
+ }
146
+ interface AXFileMediaItem extends AXMediaItemFields {
147
+ name: string;
148
+ mimeType: string;
149
+ thumbnailUrl?: string;
150
+ extension?: string;
151
+ }
152
+ interface AXFilePayload {
153
+ type: 'file';
154
+ files: AXFileMediaItem[];
155
+ caption?: string;
156
+ }
157
+ interface AXLocationPayload {
158
+ type: 'location';
159
+ latitude: number;
160
+ longitude: number;
161
+ name?: string;
162
+ address?: string;
163
+ mapImageUrl?: string;
164
+ accuracy?: number;
165
+ }
166
+ interface AXStickerPayload extends AXMediaItemFields {
167
+ type: 'sticker';
168
+ id: string;
169
+ packId: string;
170
+ animated: boolean;
171
+ width?: number;
172
+ height?: number;
173
+ emoji?: string;
174
+ }
175
+ interface AXPollOption {
176
+ id: string;
177
+ text: string;
178
+ votes: number;
179
+ voters?: string[];
180
+ }
181
+ interface AXPollPayload {
182
+ type: 'poll';
183
+ question: string;
184
+ options: AXPollOption[];
185
+ multipleChoice: boolean;
186
+ anonymous: boolean;
187
+ expiresAt?: Date;
188
+ totalVotes?: number;
189
+ }
190
+ type AXSystemEventType = 'user_joined' | 'user_left' | 'title_changed' | 'avatar_changed' | 'call_declined' | 'call_missed' | 'call_cancelled' | 'custom';
191
+ interface AXSystemPayload {
192
+ type: 'system';
193
+ eventType: AXSystemEventType;
194
+ text: string;
195
+ userIds?: string[];
196
+ data?: Record<string, unknown>;
197
+ }
198
+ /** Layout/node payload used by assist transcripts and dynamic UI messages. */
199
+ interface AXNodePayload {
200
+ type: 'node';
201
+ content: unknown;
202
+ }
203
+ /** Aligned with `@acorex/components/conversation` — node payloads use {@link AXNodePayload} at runtime with an explicit cast. */
204
+ type AXMessagePayload = AXTextPayload | AXImagePayload | AXVideoPayload | AXAudioPayload | AXVoicePayload | AXFilePayload | AXLocationPayload | AXStickerPayload | AXPollPayload | AXSystemPayload;
205
+ type AXMessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
206
+ type AXMessageType = 'text' | 'image' | 'video' | 'audio' | 'voice' | 'file' | 'location' | 'sticker' | 'poll' | 'system' | 'node' | 'assist-response' | string;
207
+ /** Reaction on a message. */
208
+ interface AXReaction {
209
+ /** Emoji character */
210
+ emoji: string;
211
+ /** User ID who reacted */
212
+ userId: string;
213
+ /** Reaction timestamp */
214
+ timestamp: Date;
215
+ }
216
+
217
+ /** Emoji used for comment "like" reactions (maps to {@link AXReaction.emoji}). */
218
+ declare const AXM_COMMENT_LIKE_EMOJI = "\uD83D\uDC4D";
219
+ /** @deprecated Use emoji string with AXReaction instead. */
220
+ type AXMReactionType = string;
221
+ /** @deprecated Use AXReaction instead. */
222
+ type AXMConversationReaction = AXReaction;
223
+ /**
224
+ * Persisted message entity — conversation message shape plus platform entity base.
225
+ */
226
+ interface AXMConversationMessage extends AXPEntityModel<string> {
227
+ /** Conversation (room) this message belongs to */
228
+ conversationId: string;
229
+ /** Sender user id */
230
+ senderId: string;
231
+ /** Message type */
232
+ type: AXMessageType;
233
+ /** File-type catalog name when this message uses a composer file type */
234
+ fileType?: string;
235
+ /** Message creation timestamp */
236
+ timestamp: Date;
237
+ /** Type-specific message payload */
238
+ payload: AXMessagePayload;
239
+ /** Message delivery/read status */
240
+ status: AXMessageStatus;
241
+ /** Replied message reference (for quote replies) */
242
+ replyTo?: AXMConversationMessage;
243
+ /** Whether this message was forwarded */
244
+ forwarded?: boolean;
245
+ /** Original sender information (if forwarded) */
246
+ forwardedFrom?: {
247
+ messageId: string;
248
+ senderId: string;
249
+ senderName?: string;
250
+ conversationId: string;
251
+ conversationTitle?: string;
252
+ };
253
+ /** Message reactions */
254
+ reactions: AXReaction[];
255
+ /** Whether message is pinned */
256
+ pinned?: boolean;
257
+ /** Edit timestamp (if edited) */
258
+ editedAt?: Date;
259
+ /** Whether message is deleted */
260
+ deleted?: boolean;
261
+ /** Deleted timestamp */
262
+ deletedAt?: Date;
263
+ /** Local-only flag (not synced to server yet) */
264
+ isLocal?: boolean;
265
+ /** Custom metadata */
266
+ metadata?: Record<string, unknown>;
267
+ /** Plain-text snippet for entity admin list column */
268
+ title?: string;
269
+ /** Programmatic name for entity admin */
270
+ name?: string;
271
+ }
272
+
273
+ type AXParticipantRole = 'admin' | 'moderator' | 'member';
274
+ type AXParticipantStatus = 'online' | 'offline' | 'away';
275
+ /** Extended profile fields shown in private-chat info panels. */
276
+ interface AXUserProfile {
277
+ bio?: string;
278
+ phone?: string;
279
+ email?: string;
280
+ username?: string;
281
+ location?: string;
282
+ company?: string;
283
+ title?: string;
284
+ }
285
+ /** Represents a user/member in a conversation. */
286
+ interface AXParticipant {
287
+ /** Unique identifier for the participant */
288
+ id: string;
289
+ /** Display name of the participant */
290
+ name: string;
291
+ /**
292
+ * Short line shown under the name in lists (e.g. job title, status line).
293
+ * Distinct from long-form bio in optional `profile.bio`.
294
+ */
295
+ description?: string;
296
+ /** Optional extended profile details for private chats. */
297
+ profile?: AXUserProfile;
298
+ /** Avatar/profile image URL */
299
+ avatar?: string;
300
+ /**
301
+ * Font Awesome icon class(es) used when `avatar` is not set (e.g. `'fa-light fa-user'`).
302
+ */
303
+ icon?: string;
304
+ /** Role in the conversation (for groups/channels) */
305
+ role?: AXParticipantRole;
306
+ /** Current online status */
307
+ status?: AXParticipantStatus;
308
+ /** Last seen timestamp (when offline/away) */
309
+ lastSeen?: Date;
310
+ /** Custom metadata */
311
+ metadata?: Record<string, unknown>;
312
+ }
313
+ type AXConversationType = 'private' | 'group' | 'channel' | 'bot';
314
+ /** Conversation status information. */
315
+ interface AXConversationStatus {
316
+ /** Whether someone is typing */
317
+ isTyping: boolean;
318
+ /** User IDs currently typing */
319
+ typingUsers: string[];
320
+ /** Online presence (for private chats) */
321
+ presence?: 'online' | 'offline' | 'away';
322
+ /** Last seen timestamp (for private chats when offline) */
323
+ lastSeen?: Date;
324
+ }
325
+ /** Conversation settings. */
326
+ interface AXConversationSettings {
327
+ /** Muted until timestamp */
328
+ mutedUntil?: Date;
329
+ /** Show notifications */
330
+ notifications: boolean;
331
+ /** Custom notification sound */
332
+ notificationSound?: string;
333
+ /** Show message preview in notifications */
334
+ showPreview: boolean;
335
+ /** Custom settings */
336
+ custom?: Record<string, unknown>;
337
+ }
338
+ /** Theme-specific CSS `background` values for the message list area. */
339
+ interface AXConversationMessageListThemeBackground {
340
+ light: string;
341
+ dark: string;
342
+ }
343
+ /** Single CSS value (both themes) or per-theme `{ light, dark }` backgrounds. */
344
+ type AXConversationMessageListBackground = string | AXConversationMessageListThemeBackground;
345
+ /**
346
+ * Extensible map for app-specific conversation data.
347
+ * Aligned with `@acorex/components/conversation` — UI-only keys such as
348
+ * `messageListEmptyComponent` are stored as opaque values when persisted.
349
+ */
350
+ interface AXConversationMetadata extends Record<string, unknown> {
351
+ /** Optional custom background CSS for message list (per light/dark theme). */
352
+ messageListBackground?: AXConversationMessageListBackground;
353
+ /**
354
+ * When `false`, hides reaction UI for this conversation.
355
+ * Defaults to `true` when omitted.
356
+ */
357
+ reactionsEnabled?: boolean;
358
+ }
359
+
360
+ /** Distinguishes chat inbox rooms from entity comment threads in the unified store. */
361
+ type AXMConversationRoomKind = 'chat' | 'comment';
362
+ /**
363
+ * Persisted room entity — conversation shape plus platform entity base.
364
+ */
365
+ interface AXMConversationRoom extends AXPEntityModel<string> {
366
+ /** Chat vs comment thread discriminator */
367
+ kind: AXMConversationRoomKind;
368
+ /** Conversation type (private, group, channel, bot) */
369
+ type: AXConversationType;
370
+ /** User who created this conversation */
371
+ creatorId?: string;
372
+ /** Conversation title/name */
373
+ title: string;
374
+ /** Conversation avatar/image URL */
375
+ avatar?: string;
376
+ /** Font Awesome icon class(es) when no image avatar is used */
377
+ icon?: string;
378
+ /** Conversation description (for groups/channels) */
379
+ description?: string;
380
+ /** List of participants */
381
+ participants: AXParticipant[];
382
+ /** Last message in the conversation */
383
+ lastMessage?: AXMConversationMessage;
384
+ /** Timestamp of last message */
385
+ lastMessageAt: Date;
386
+ /** Number of unread messages */
387
+ unreadCount: number;
388
+ /** Number of unread mentions */
389
+ unreadMentions?: number;
390
+ /** Current status (typing, presence, etc.) */
391
+ status: AXConversationStatus;
392
+ /** User-specific settings */
393
+ settings: AXConversationSettings;
394
+ /** Pinned messages IDs */
395
+ pinnedMessageIds?: string[];
396
+ /** Conversation creation timestamp */
397
+ createdAt: Date;
398
+ /** Last update timestamp */
399
+ updatedAt: Date;
400
+ /** Whether conversation is blocked */
401
+ blocked?: boolean;
402
+ /** Whether conversation is pinned */
403
+ pinned?: boolean;
404
+ /** Whether conversation is archived */
405
+ archived?: boolean;
406
+ /** Draft message text */
407
+ draft?: string;
408
+ /** Custom metadata */
409
+ metadata?: AXConversationMetadata;
410
+ /** Programmatic name for entity admin */
411
+ name?: string;
412
+ /** Entity reference for comment threads */
413
+ entityRef?: AXMCommentEntityData;
414
+ /** Comment thread topic/subject */
415
+ topic?: string;
416
+ }
417
+
418
+ /** Minimal tool-call shape for assist-stream frontend broker round-trips (mirrors AXPAiToolCall). */
419
+ interface ConversationAssistFrontendToolCall {
420
+ id: string;
421
+ name: string;
422
+ arguments?: unknown;
423
+ }
424
+ type ConversationAssistWireEvent = {
425
+ type: 'assist_started';
426
+ conversationId: string;
427
+ messageId: string;
428
+ userMessageId: string;
429
+ message: AXMConversationMessage$1;
430
+ } | {
431
+ type: 'message_patch';
432
+ message: AXMConversationMessage$1;
433
+ } | {
434
+ type: 'conversation_patch';
435
+ room: AXMConversationRoom$1;
436
+ } | {
437
+ type: 'assist_completed';
438
+ conversationId: string;
439
+ messageId: string;
440
+ message: AXMConversationMessage$1;
441
+ /** Present when an auto-generated title was applied at finalize time. */
442
+ room?: AXMConversationRoom$1;
443
+ } | {
444
+ type: 'assist_failed';
445
+ conversationId: string;
446
+ messageId: string;
447
+ error: string;
448
+ message: AXMConversationMessage$1;
449
+ } | {
450
+ type: 'frontend_tool_call';
451
+ runId: string;
452
+ call: ConversationAssistFrontendToolCall;
453
+ };
454
+
455
+ declare function axmExtractAssistIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
456
+ declare function axmExtractDirectAgentIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
457
+ declare function axmConversationHasAiChat(metadata: Record<string, unknown> | undefined): boolean;
458
+ declare function axmChatAiPeerParticipantId(catalogId: string): string;
459
+ declare function axmReadAssistResponseStatus(metadata: Record<string, unknown> | undefined): string | undefined;
460
+ declare function axmReadReplyToUserMessageId(metadata: Record<string, unknown> | undefined): string | undefined;
461
+ declare function extractMessageTextFromPayload(payload: unknown): string;
462
+ declare function axmNormalizeConversationTitle(raw: string): string;
463
+ /** System prompt for a lightweight title-only model call (first user message → sidebar title). */
464
+ declare const AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT = "You generate short conversation titles for chat sidebars.\n\nGiven the user's first message, reply with ONLY a concise title (3\u20138 words, max 90 characters).\nUse the same language as the user's message (for example Persian if they wrote in Persian).\nDo not use quotes, colons, hashtags, or explanation. Output the title text only.";
465
+ declare function axmSanitizeAiGeneratedConversationTitle(raw: string): string | null;
466
+ /** Fallback when the title model is unavailable (max 6 words, 90 chars). */
467
+ declare function axmBuildHeuristicConversationTitleFallback(raw: string): string | null;
468
+ declare function axmCoerceMessageTimestampMs(value: unknown): number;
469
+ /** Assist rows must sort after the user turn they reply to (client/server clocks may differ). */
470
+ declare function axmResolveAssistMessageTimestamp(options: {
471
+ replyToUserMessageTimestamp?: unknown;
472
+ serverNow?: Date;
473
+ }): Date;
474
+ declare function axmEnsureAssistMessageSortsAfterReplyTarget<T extends {
475
+ timestamp: unknown;
476
+ }>(message: T, replyTargetTimestamp: unknown): T;
477
+ /** Chronological sort with assist→user reply linkage when timestamps disagree across clocks. */
478
+ declare function axmCompareMessagesChronologically(a: {
479
+ id: string;
480
+ timestamp: unknown;
481
+ metadata?: Record<string, unknown>;
482
+ }, b: {
483
+ id: string;
484
+ timestamp: unknown;
485
+ metadata?: Record<string, unknown>;
486
+ }): number;
487
+
488
+ interface AXMConversationAssistMessageHandler {
489
+ maybeStartAfterUserMessage(userMessage: AXMConversationMessage): Promise<void>;
490
+ retryAssistResponse(conversationId: string, messageId: string, options?: {
491
+ replyToUserMessageId?: string;
492
+ }): Promise<AXMConversationMessage>;
493
+ }
494
+ declare const AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER: unique symbol;
495
+
496
+ export { AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_COMMENT_LIKE_EMOJI, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXPCollaborationPermissionKeys, AXPConversationMenuKeys, RootConfig, axmBuildHeuristicConversationTitleFallback, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractDirectAgentIdFromMetadata, axmNormalizeConversationTitle, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmSanitizeAiGeneratedConversationTitle, extractMessageTextFromPayload };
497
+ export type { AXAudioMediaItem, AXAudioPayload, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMCommentEntityData, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMReactionType, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };