@acorex/components 22.1.0-next.24 → 22.1.0-next.26

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.
@@ -28,6 +28,7 @@ declare class AXConversationComposerPopupComponent implements OnDestroy {
28
28
  private get registry();
29
29
  contentContainer: _angular_core.Signal<ViewContainerRef>;
30
30
  private currentComponentRef;
31
+ private tabItemSelectedSubscription;
31
32
  /** Popup open state (for backward compatibility) */
32
33
  readonly isOpen: _angular_core.InputSignal<boolean>;
33
34
  /** Close event (for backward compatibility) */
@@ -54,6 +55,7 @@ declare class AXConversationComposerPopupComponent implements OnDestroy {
54
55
  }): void;
55
56
  /** Load tab content component */
56
57
  private loadTabContent;
58
+ private clearTabContent;
57
59
  ngOnDestroy(): void;
58
60
  /** Close popup (for backward compatibility) */
59
61
  close(): void;
@@ -1255,6 +1257,7 @@ declare class AXConversationMessageRendererRegistry {
1255
1257
  private readonly _composerActions;
1256
1258
  constructor();
1257
1259
  private registerBuiltInRenderers;
1260
+ private registerBuiltInRendererIfMissing;
1258
1261
  /** All registered renderers */
1259
1262
  readonly renderers: Signal<AXConversationMessageRenderer[]>;
1260
1263
  /** Renderers sorted by priority (highest first) */
@@ -1618,7 +1621,6 @@ declare class AXConversationMessageActionRegistry {
1618
1621
  }
1619
1622
 
1620
1623
  declare class AXConversationComposerComponent implements OnDestroy {
1621
- #private;
1622
1624
  private readonly conversationService;
1623
1625
  private readonly composerService;
1624
1626
  private readonly messageListService;
@@ -1658,8 +1660,6 @@ declare class AXConversationComposerComponent implements OnDestroy {
1658
1660
  readonly composerPopupLoader: () => Promise<typeof _acorex_components_conversation.AXConversationComposerPopupComponent>;
1659
1661
  /** Input placeholder - use service */
1660
1662
  readonly placeholder: _angular_core.Signal<string>;
1661
- /** Typing indicator subject for rate limiting */
1662
- private readonly typingSubject;
1663
1663
  constructor();
1664
1664
  private draftSaveTimeout?;
1665
1665
  /** Number of input rows - use service */
@@ -1686,14 +1686,10 @@ declare class AXConversationComposerComponent implements OnDestroy {
1686
1686
  readonly endMenuActions: _angular_core.Signal<AXConversationComposerAction[]>;
1687
1687
  /** Default end action (voice/send morph) */
1688
1688
  readonly defaultAction: _angular_core.Signal<AXConversationComposerAction>;
1689
- /** Handle key down */
1689
+ /** Handle key down (send on Enter; typing is driven by draft changes only). */
1690
1690
  onKeyDown(event: AXHtmlEvent<KeyboardEvent>): void;
1691
- /** Handle input */
1692
- onInput(): void;
1693
- /** Send typing indicator (throttled via RxJS) */
1694
- private sendTypingIndicator;
1695
- private stopTypingIndicator;
1696
- private typingStopHandle?;
1691
+ /** Handle draft text changes — throttled typing indicator via conversation service. */
1692
+ onDraftChanged(): void;
1697
1693
  /** Cleanup on destroy */
1698
1694
  ngOnDestroy(): void;
1699
1695
  /** Handle send click */
@@ -1770,7 +1766,6 @@ declare class AXConversationComposerComponent implements OnDestroy {
1770
1766
  onReplyPreviewClick(): void;
1771
1767
  /** Inputs for picker components opened in popup / action sheet */
1772
1768
  private buildPickerInputs;
1773
- onEnter(event: AXHtmlEvent<KeyboardEvent>): Promise<void>;
1774
1769
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerComponent, never>;
1775
1770
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationComposerComponent, "ax-conversation-composer", never, {}, { "messageSent": "messageSent"; "generationCancelled": "generationCancelled"; "emojiClick": "emojiClick"; "attachClick": "attachClick"; "voiceClick": "voiceClick"; }, never, never, true, never>;
1776
1771
  }
@@ -2631,111 +2626,33 @@ declare abstract class AXConversationMessageApi {
2631
2626
 
2632
2627
  /**
2633
2628
  * Abstract Real-time Events API
2634
- * Handle WebSocket/SSE connections and real-time event subscriptions
2629
+ * Handle WebSocket/SSE event subscriptions for conversation domain updates
2635
2630
  */
2636
2631
 
2637
- /**
2638
- * Connection options
2639
- */
2640
- interface AXConversationConnectionOptions {
2641
- /** WebSocket/SSE endpoint URL */
2642
- url?: string;
2643
- /** Authentication token */
2644
- token?: string;
2645
- /** Reconnect automatically on disconnect */
2646
- autoReconnect?: boolean;
2647
- /** Reconnect delay in milliseconds */
2648
- reconnectDelay?: number;
2649
- /** Maximum reconnect attempts */
2650
- maxReconnectAttempts?: number;
2651
- /** Heartbeat interval in milliseconds */
2652
- heartbeatInterval?: number;
2653
- /** Custom headers */
2654
- headers?: Record<string, string>;
2655
- }
2656
- /**
2657
- * Connection event
2658
- */
2659
- interface AXConversationConnectionEvent {
2660
- /** Event type */
2661
- type: 'connected' | 'disconnected' | 'reconnecting' | 'error';
2662
- /** Timestamp */
2663
- timestamp: Date;
2664
- /** Error message if applicable */
2665
- error?: string;
2666
- /** Attempt number for reconnecting */
2667
- attempt?: number;
2668
- }
2669
- /**
2670
- * Notification event
2671
- */
2672
- interface AXConversationNotificationEvent {
2673
- /** Notification ID */
2674
- id: string;
2675
- /** Notification type */
2676
- type: 'message' | 'mention' | 'reaction' | 'call' | 'system';
2677
- /** Title */
2678
- title: string;
2679
- /** Body text */
2680
- body: string;
2681
- /** Related conversation ID */
2682
- conversationId?: string;
2683
- /** Related message ID */
2684
- messageId?: string;
2685
- /** Icon URL */
2686
- icon?: string;
2687
- /** Timestamp */
2688
- timestamp: Date;
2689
- /** Custom data */
2690
- data?: Record<string, unknown>;
2691
- }
2692
- /**
2693
- * Call event
2694
- */
2695
- interface AXConversationCallEvent {
2696
- /** Call ID */
2697
- callId: string;
2698
- /** Call type */
2699
- type: 'voice' | 'video';
2700
- /** Call status */
2701
- status: 'incoming' | 'outgoing' | 'accepted' | 'rejected' | 'ended' | 'missed';
2702
- /** Caller user ID */
2703
- callerId: string;
2704
- /** Conversation ID */
2705
- conversationId: string;
2706
- /** Timestamp */
2707
- timestamp: Date;
2708
- /** Call duration in seconds (for ended calls) */
2709
- duration?: number;
2710
- }
2711
2632
  /**
2712
2633
  * Abstract Real-time Events API
2713
2634
  *
2714
- * Implement this abstract class to handle real-time event subscriptions.
2715
- * Supports WebSocket, SSE, or any other real-time protocol.
2635
+ * Implement this abstract class to expose domain event streams from your WebSocket/SSE layer.
2636
+ * Connection lifecycle is owned by the implementation — this contract only covers subscriptions.
2637
+ *
2638
+ * Covered domains: message CRUD, conversation (room) CRUD, typing indicators, and presence.
2639
+ * Message updates include edits, reactions, delivery/read status, and other message field changes.
2716
2640
  *
2717
2641
  * @example
2718
2642
  * ```typescript
2719
2643
  * @Injectable()
2720
2644
  * export class MyRealtimeApi extends AXConversationRealtimeApi {
2721
- * private socket: WebSocket;
2722
- * private connectionStatus$ = new BehaviorSubject<AXConversationConnectionStatus>('disconnected');
2645
+ * private readonly messageCreated$ = new Subject<AXConversationMessage>();
2723
2646
  *
2724
- * async connect(options?: AXConversationConnectionOptions): Promise<void> {
2725
- * this.socket = new WebSocket(options?.url || 'ws://localhost:3000');
2726
- * this.socket.onopen = () => this.connectionStatus$.next('connected');
2727
- * // ... handle other events
2647
+ * constructor(private readonly socket: MyChatSocketService) {
2648
+ * super();
2649
+ * this.socket.on('message.created', (message) => this.messageCreated$.next(message));
2728
2650
  * }
2729
2651
  *
2730
2652
  * subscribeToMessages(conversationId: string): Observable<AXConversationMessage> {
2731
- * return new Observable(subscriber => {
2732
- * this.socket.addEventListener('message', (event) => {
2733
- * const data = JSON.parse(event.data);
2734
- * if (data.type === 'message' && data.conversationId === conversationId) {
2735
- * subscriber.next(data.message);
2736
- * }
2737
- * });
2738
- * });
2653
+ * return this.messageCreated$.pipe(
2654
+ * filter((message) => !conversationId || message.conversationId === conversationId),
2655
+ * );
2739
2656
  * }
2740
2657
  *
2741
2658
  * // ... implement other methods
@@ -2743,41 +2660,6 @@ interface AXConversationCallEvent {
2743
2660
  * ```
2744
2661
  */
2745
2662
  declare abstract class AXConversationRealtimeApi {
2746
- /**
2747
- * Current connection status
2748
- * Emit connection status changes through this observable
2749
- */
2750
- abstract readonly connectionStatus$: Observable<AXConversationConnectionStatus>;
2751
- /**
2752
- * Connect to real-time server
2753
- * Establish WebSocket/SSE connection
2754
- *
2755
- * @param options - Connection options
2756
- * @throws {Error} If connection fails
2757
- */
2758
- abstract connect(options?: AXConversationConnectionOptions): Promise<void>;
2759
- /**
2760
- * Disconnect from real-time server
2761
- * Close connection and clean up resources
2762
- */
2763
- abstract disconnect(): Promise<void>;
2764
- /**
2765
- * Check if currently connected
2766
- *
2767
- * @returns True if connected
2768
- */
2769
- abstract isConnected(): boolean;
2770
- /**
2771
- * Reconnect to server
2772
- * Manually trigger reconnection
2773
- */
2774
- abstract reconnect(): Promise<void>;
2775
- /**
2776
- * Subscribe to connection events
2777
- *
2778
- * @returns Observable of connection events
2779
- */
2780
- abstract subscribeToConnectionEvents(): Observable<AXConversationConnectionEvent>;
2781
2663
  /**
2782
2664
  * Subscribe to new messages in a conversation
2783
2665
  *
@@ -2786,7 +2668,7 @@ declare abstract class AXConversationRealtimeApi {
2786
2668
  */
2787
2669
  abstract subscribeToMessages(conversationId: string): Observable<AXConversationMessage>;
2788
2670
  /**
2789
- * Subscribe to message updates (edits, status changes)
2671
+ * Subscribe to message updates (edits, reactions, status changes, metadata, etc.)
2790
2672
  *
2791
2673
  * @param conversationId - Optional conversation ID to filter
2792
2674
  * @returns Observable stream of updated messages
@@ -2800,15 +2682,32 @@ declare abstract class AXConversationRealtimeApi {
2800
2682
  */
2801
2683
  abstract subscribeToMessageDeletions(conversationId?: string): Observable<string>;
2802
2684
  /**
2803
- * Subscribe to message reactions
2685
+ * Subscribe to message status changes
2686
+ * Fires when message status changes (sending -> sent -> delivered -> read)
2687
+ *
2688
+ * @param conversationId - Optional conversation ID to filter
2689
+ * @returns Observable stream of message status updates
2690
+ */
2691
+ abstract subscribeToMessageStatusChanges(conversationId?: string): Observable<{
2692
+ messageId: string;
2693
+ status: 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
2694
+ timestamp: Date;
2695
+ }>;
2696
+ /**
2697
+ * Subscribe to read receipt updates
2698
+ * Fires when someone reads messages
2804
2699
  *
2805
2700
  * @param conversationId - Optional conversation ID to filter
2806
- * @returns Observable stream of updated messages with reactions
2701
+ * @returns Observable stream of message IDs that were read
2807
2702
  */
2808
- abstract subscribeToMessageReactions(conversationId?: string): Observable<AXConversationMessage>;
2703
+ abstract subscribeToReadReceipts(conversationId?: string): Observable<{
2704
+ messageId: string;
2705
+ userId: string;
2706
+ readAt: Date;
2707
+ }>;
2809
2708
  /**
2810
2709
  * Subscribe to conversation updates
2811
- * Fires when conversation details change (title, avatar, participants, etc.)
2710
+ * Fires when conversation details change (title, avatar, participants, last message, etc.)
2812
2711
  *
2813
2712
  * @returns Observable stream of updated conversations
2814
2713
  */
@@ -2841,97 +2740,6 @@ declare abstract class AXConversationRealtimeApi {
2841
2740
  * @returns Observable stream of presence updates
2842
2741
  */
2843
2742
  abstract subscribeToPresenceUpdates(userIds?: string[]): Observable<AXConversationPresenceUpdate>;
2844
- /**
2845
- * Subscribe to read receipt updates
2846
- * Fires when someone reads messages
2847
- *
2848
- * @param conversationId - Optional conversation ID to filter
2849
- * @returns Observable stream of message IDs that were read
2850
- */
2851
- abstract subscribeToReadReceipts(conversationId?: string): Observable<{
2852
- messageId: string;
2853
- userId: string;
2854
- readAt: Date;
2855
- }>;
2856
- /**
2857
- * Subscribe to push notifications
2858
- * Fires for mentions, calls, and other important events
2859
- *
2860
- * @returns Observable stream of notification events
2861
- */
2862
- abstract subscribeToNotifications(): Observable<AXConversationNotificationEvent>;
2863
- /**
2864
- * Subscribe to call events
2865
- * Fires for incoming/outgoing calls
2866
- *
2867
- * @returns Observable stream of call events
2868
- */
2869
- abstract subscribeToCallEvents?(): Observable<AXConversationCallEvent>;
2870
- /**
2871
- * Subscribe to user blocked/unblocked events
2872
- *
2873
- * @returns Observable stream of user IDs and block status
2874
- */
2875
- abstract subscribeToUserBlockEvents(): Observable<{
2876
- userId: string;
2877
- blocked: boolean;
2878
- }>;
2879
- /**
2880
- * Subscribe to participant added/removed events
2881
- *
2882
- * @param conversationId - Optional conversation ID to filter
2883
- * @returns Observable stream of participant changes
2884
- */
2885
- abstract subscribeToParticipantEvents(conversationId?: string): Observable<{
2886
- conversationId: string;
2887
- userId: string;
2888
- action: 'added' | 'removed';
2889
- }>;
2890
- /**
2891
- * Subscribe to system events
2892
- * Fires for maintenance, updates, or other system-wide events
2893
- *
2894
- * @returns Observable stream of system events
2895
- */
2896
- abstract subscribeToSystemEvents(): Observable<{
2897
- type: string;
2898
- message: string;
2899
- data?: unknown;
2900
- }>;
2901
- /**
2902
- * Subscribe to message status changes
2903
- * Fires when message status changes (sending -> sent -> delivered -> read)
2904
- *
2905
- * @param conversationId - Optional conversation ID to filter
2906
- * @returns Observable stream of message status updates
2907
- */
2908
- abstract subscribeToMessageStatusChanges(conversationId?: string): Observable<{
2909
- messageId: string;
2910
- status: 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
2911
- timestamp: Date;
2912
- }>;
2913
- /**
2914
- * Subscribe to conversation settings changes
2915
- * Fires when conversation settings are updated
2916
- *
2917
- * @param conversationId - Optional conversation ID to filter
2918
- * @returns Observable stream of settings updates
2919
- */
2920
- abstract subscribeToConversationSettingsChanges(conversationId?: string): Observable<{
2921
- conversationId: string;
2922
- settings: Record<string, unknown>;
2923
- }>;
2924
- /**
2925
- * Subscribe to draft changes
2926
- * Fires when draft is saved/updated in a conversation
2927
- *
2928
- * @param conversationId - Optional conversation ID to filter
2929
- * @returns Observable stream of draft updates
2930
- */
2931
- abstract subscribeToDraftChanges(conversationId?: string): Observable<{
2932
- conversationId: string;
2933
- draft: string | null;
2934
- }>;
2935
2743
  }
2936
2744
 
2937
2745
  /**
@@ -3251,8 +3059,6 @@ declare class AXConversationService {
3251
3059
  private readonly _error;
3252
3060
  private readonly _conversationsPagination;
3253
3061
  private readonly _messagesPaginationByConversation;
3254
- /** Emits when the active conversation changes, cancelling per-conversation subscriptions. */
3255
- private readonly _conversationSwitch$;
3256
3062
  private readonly _messageReceived$;
3257
3063
  private readonly _messageUpdated$;
3258
3064
  private readonly _messageDeleted$;
@@ -3278,8 +3084,6 @@ declare class AXConversationService {
3278
3084
  readonly activeMessagesPagination: _angular_core.Signal<AXConversationPaginationState>;
3279
3085
  /** Error state */
3280
3086
  readonly error: _angular_core.Signal<Error>;
3281
- /** Connection status */
3282
- readonly connectionStatus$: rxjs.Observable<_acorex_components_conversation.AXConversationConnectionStatus>;
3283
3087
  /** Error stream */
3284
3088
  readonly errors$: rxjs.Observable<_acorex_components_conversation.AXConversationError>;
3285
3089
  readonly onMessageReceived: rxjs.Observable<AXConversationMessage>;
@@ -3303,8 +3107,10 @@ declare class AXConversationService {
3303
3107
  private readFlushHandle;
3304
3108
  private presenceTickHandle?;
3305
3109
  private typingPruneHandle?;
3306
- private isTypingActiveForConversation;
3307
- private typingStopHandle?;
3110
+ /** Outgoing typing indicator throttle state (composer -> API). */
3111
+ private readonly outgoingTypingLastEmitAt;
3112
+ private readonly outgoingTypingActive;
3113
+ private readonly outgoingTypingStopHandles;
3308
3114
  /** Session cache for available reaction emojis. */
3309
3115
  private availableReactionsCache;
3310
3116
  private availableReactionsPromise;
@@ -3324,8 +3130,9 @@ declare class AXConversationService {
3324
3130
  */
3325
3131
  private initializeService;
3326
3132
  /**
3327
- * Subscribe to real-time events
3328
- * All subscriptions include error handling to prevent stream termination
3133
+ * Subscribe to real-time events from {@link AXConversationRealtimeApi}.
3134
+ * Binds every abstract subscription: messages (create/update/delete/status/read),
3135
+ * conversations (create/update/delete), typing indicators, and presence.
3329
3136
  */
3330
3137
  private subscribeToEvents;
3331
3138
  getUserPresence(userId: string): AXConversationUserPresence | undefined;
@@ -3427,6 +3234,18 @@ declare class AXConversationService {
3427
3234
  * Cancel an in-progress generation from the composer UI or programmatically.
3428
3235
  */
3429
3236
  cancelGeneration(): void;
3237
+ /**
3238
+ * Notify that the composer has draft content.
3239
+ * Emits typing indicators at most once per {@link AXConversationConfig.typingIndicatorThrottle}.
3240
+ */
3241
+ notifyComposerTyping(conversationId: string): void;
3242
+ /**
3243
+ * Notify that the composer no longer has draft content (or user left the chat).
3244
+ * Sends a single stop event when a typing indicator was previously emitted.
3245
+ */
3246
+ notifyComposerStoppedTyping(conversationId: string): void;
3247
+ private scheduleOutgoingTypingStop;
3248
+ private clearOutgoingTypingStop;
3430
3249
  /**
3431
3250
  * Send typing indicator
3432
3251
  * Non-critical operation, doesn't throw on failure
@@ -3472,7 +3291,6 @@ declare class AXConversationService {
3472
3291
  private handleConversationDeleted;
3473
3292
  private handleReadReceipt;
3474
3293
  private handleMessageStatusChange;
3475
- private handleRoomPreferencesChange;
3476
3294
  /**
3477
3295
  * Insert or refresh a conversation in the in-memory inbox.
3478
3296
  * @param promote When true, bumps activity so the chat sorts to the top (create / reopen).
@@ -3483,6 +3301,10 @@ declare class AXConversationService {
3483
3301
  * Update conversation's last message
3484
3302
  */
3485
3303
  private updateConversationLastMessage;
3304
+ /** Keep sidebar preview in sync when the last cached message is edited or deleted. */
3305
+ private syncLastMessageIfRelevant;
3306
+ /** Recompute conversation preview after a message is removed from the local cache. */
3307
+ private refreshConversationLastMessage;
3486
3308
  /**
3487
3309
  * Update conversation properties
3488
3310
  * @param conversationId - Conversation ID
@@ -3554,11 +3376,6 @@ declare class AXConversationService {
3554
3376
  * @returns Number of times forwarded
3555
3377
  */
3556
3378
  getForwardCount(messageId: string): Promise<number>;
3557
- /**
3558
- * Disconnect and cleanup
3559
- * Cleanly closes all connections and resources
3560
- */
3561
- disconnect(): Promise<void>;
3562
3379
  /**
3563
3380
  * Archive conversation
3564
3381
  * @param conversationId - Conversation ID
@@ -4060,19 +3877,6 @@ declare class AXConversationMessageListComponent implements OnDestroy {
4060
3877
  handleMessageContextMenuOpening(event: AXContextMenuOpeningEvent, message: AXConversationMessage): void;
4061
3878
  /** Handle context menu item click for messages */
4062
3879
  handleMessageContextMenuItemClick(event: AXContextMenuItemsClickEvent, message: AXConversationMessage): void;
4063
- /**
4064
- * TrackBy function for message groups.
4065
- * Track by date only — new messages in the same day are handled by the inner message @for.
4066
- */
4067
- trackMessageGroup(index: number, group: {
4068
- date: string;
4069
- messages: AXConversationMessage[];
4070
- }): string;
4071
- /**
4072
- * TrackBy function for messages
4073
- * Tracks by ID only to prevent unnecessary re-renders
4074
- */
4075
- trackMessage(index: number, message: AXConversationMessage): string;
4076
3880
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageListComponent, never>;
4077
3881
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationMessageListComponent, "ax-conversation-message-list", never, {}, { "messageAction": "messageAction"; }, never, ["ax-conversation-message-list-empty, [ax-conversation-message-list-empty]", "ax-conversation-message-list-no-active, [ax-conversation-message-list-no-active]"], true, never>;
4078
3882
  }
@@ -4220,7 +4024,6 @@ declare class AXConversationRegistryComponentOutletComponent {
4220
4024
  readonly componentLoader: _angular_core.InputSignal<() => Promise<Type<unknown>>>;
4221
4025
  readonly inputs: _angular_core.InputSignal<Record<string, unknown>>;
4222
4026
  readonly resolvedComponent: _angular_core.WritableSignal<Type<unknown>>;
4223
- readonly loading: _angular_core.WritableSignal<boolean>;
4224
4027
  /** Avoid re-loading when the parent re-binds the same lazy loader reference. */
4225
4028
  private activeLoader;
4226
4029
  constructor();
@@ -4422,7 +4225,6 @@ interface AXConversationConfig {
4422
4225
  messageHighlightDuration?: number;
4423
4226
  /** Search debounce delay in milliseconds */
4424
4227
  debounceSearch?: number;
4425
- /** Date separator inactivity fade delay in milliseconds */
4426
4228
  /** Maximum messages per conversation */
4427
4229
  maxMessagesPerConversation?: number;
4428
4230
  /** Maximum total messages in store */
@@ -4435,8 +4237,6 @@ interface AXConversationConfig {
4435
4237
  maxSidebarWidth?: number;
4436
4238
  /** Default sidebar width in pixels */
4437
4239
  defaultSidebarWidth?: number;
4438
- /** Filter cache size */
4439
- filterCacheSize?: number;
4440
4240
  /** Maximum message length in characters */
4441
4241
  maxMessageLength?: number;
4442
4242
  /** Minimum message length in characters */
@@ -4445,7 +4245,7 @@ interface AXConversationConfig {
4445
4245
  maxFilesPerMessage?: number;
4446
4246
  /** Threshold for marking messages as read (0.0 to 1.0, default: 0.3) */
4447
4247
  messageReadThreshold?: number;
4448
- /** Debounce window (ms) before flushing batched read-receipt API calls (default: 400) */
4248
+ /** Debounce window (ms) before flushing batched read-receipt API calls (default: 3000) */
4449
4249
  messageReadDebounce?: number;
4450
4250
  /**
4451
4251
  * When true, marks the whole conversation as read once when it is selected (single API call).
@@ -4589,7 +4389,10 @@ declare function applyAudioLocalPreview(payload: AXConversationMessagePayload, l
4589
4389
  * Shared upload state and helpers for composer media pickers.
4590
4390
  */
4591
4391
 
4392
+ /** Stable id for `@for` tracking while upload state is patched immutably. */
4393
+ declare function createPickerUploadItemId(): string;
4592
4394
  interface AXConversationComposerPickerUploadItem {
4395
+ id: string;
4593
4396
  file: File;
4594
4397
  preview?: string;
4595
4398
  duration?: number;
@@ -4757,18 +4560,9 @@ declare function fileItemFromUpload(file: File, result: AXConversationUploaderRe
4757
4560
  declare function mergeFileUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
4758
4561
  declare function applyFileLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
4759
4562
 
4760
- interface AXConversationAttachedFile {
4761
- file: File;
4762
- preview?: string;
4563
+ interface AXConversationAttachedFile extends AXConversationComposerPickerUploadItem {
4763
4564
  icon: string;
4764
4565
  type: 'image' | 'video' | 'audio' | 'file';
4765
- uploadProgress?: number;
4766
- uploading?: boolean;
4767
- uploaded?: boolean;
4768
- uploadedUrl?: string;
4769
- mediaId?: string;
4770
- error?: string;
4771
- abortController?: AbortController;
4772
4566
  }
4773
4567
  declare class AXConversationFilePickerComponent implements OnDestroy, AXConversationComposerActionComponent {
4774
4568
  private uploadsDismissed;
@@ -6532,5 +6326,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6532
6326
  */
6533
6327
  type AXConversationErrorCode = typeof AX_CONVERSATION_MESSAGE_ERRORS[keyof typeof AX_CONVERSATION_MESSAGE_ERRORS]['code'] | typeof AX_CONVERSATION_FILE_ERRORS[keyof typeof AX_CONVERSATION_FILE_ERRORS]['code'] | typeof AX_CONVERSATION_USER_ERRORS[keyof typeof AX_CONVERSATION_USER_ERRORS]['code'] | typeof AX_CONVERSATION_ERRORS[keyof typeof AX_CONVERSATION_ERRORS]['code'] | typeof AX_CONVERSATION_CONNECTION_ERRORS[keyof typeof AX_CONVERSATION_CONNECTION_ERRORS]['code'] | typeof AX_CONVERSATION_LOCATION_ERRORS[keyof typeof AX_CONVERSATION_LOCATION_ERRORS]['code'] | typeof AX_CONVERSATION_URL_ERRORS[keyof typeof AX_CONVERSATION_URL_ERRORS]['code'];
6534
6328
 
6535
- export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMessageDeliveryPending, isMessageListThemeBackground, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6536
- export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCallEvent, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionEvent, AXConversationConnectionOptions, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDeleteMessageCommand, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationNotificationEvent, AXConversationOptions, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
6329
+ export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isGenericPrivateConversationTitle, isGridMediaCategory, isMessageDeliveryPending, isMessageListThemeBackground, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
6330
+ export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDeleteMessageCommand, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };