@sendbird/ai-agent-messenger-react 1.29.0 → 1.31.0

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,6 +1,7 @@
1
1
  import { Action } from '@sendbird/uikit-message-template';
2
2
  import type { AIAgentChannelFilter } from '@sendbird/chat/aiAgent';
3
3
  import type { AIAgentModule } from '@sendbird/chat/aiAgent';
4
+ import { AriaRole } from 'react';
4
5
  import type { BaseChannelCollectionEventHandler } from '@sendbird/chat/groupChannel';
5
6
  import type { BaseMessage } from '@sendbird/chat/message';
6
7
  import type { CollectionEventSource } from '@sendbird/chat';
@@ -475,12 +476,15 @@ declare interface AIAgentConfig_2 {
475
476
  * */
476
477
  senderAvatarEnabled: boolean;
477
478
  /**
478
- * Controls how markdown images are displayed while a message is streaming.
479
- * - `default`: Renders partial markdown as-is.
480
- * - `complete-only`: Hides incomplete image markdown until the image token is complete.
481
- * @default 'default'
479
+ * Markdown elements whose rendering is deferred until their token is complete while streaming.
480
+ * Deferred elements stay hidden until fully streamed; others render partial markdown as-is.
481
+ * @default []
482
482
  * */
483
- markdownImageRenderMode: MarkdownImageRenderMode;
483
+ deferredMarkdownElements: DeferredMarkdownElement[];
484
+ /** @deprecated Use `deferredMarkdownElements` with `'image'` instead. */
485
+ markdownImageRenderMode?: 'default' | 'complete-only';
486
+ /** @deprecated Use `deferredMarkdownElements` with `'link'` instead. */
487
+ markdownLinkRenderMode?: 'default' | 'complete-only';
484
488
  };
485
489
  header: {
486
490
  /**
@@ -1250,6 +1254,23 @@ declare interface AIAgentStringSet {
1250
1254
  };
1251
1255
  }
1252
1256
 
1257
+ declare type AnnouncementQueueMode = 'latestOnly' | 'ordered';
1258
+
1259
+ declare interface AnnounceOptions {
1260
+ /**
1261
+ * How to queue announcements while throttled.
1262
+ * - `latestOnly` (default): keep only the latest queued announcement within the throttle window
1263
+ * - `ordered`: preserve FIFO ordering for queued announcements within the throttle window
1264
+ */
1265
+ mode?: AnnouncementQueueMode;
1266
+ /**
1267
+ * Event identity for dedup. When provided, ordered-mode dedup compares this key
1268
+ * (instead of speech text), so two distinct content-bearing events whose rendered
1269
+ * text happens to match are both heard. Undefined preserves the legacy text-based dedup.
1270
+ */
1271
+ dedupeKey?: string;
1272
+ }
1273
+
1253
1274
  declare type AnonUserSessionData = { userId: string; authToken: string; expireAt: number };
1254
1275
 
1255
1276
  export declare class AnonymousSessionInfo {
@@ -1511,7 +1532,7 @@ declare interface ContextObject {
1511
1532
  context: Record<string, string>;
1512
1533
  }
1513
1534
 
1514
- export declare const Conversation: ({ children, onNavigateToConversationList, channelUrl, onClearChannelUrl, shouldMarkAsRead, announcementsEnabled, style, closedChannelUrl, onClearClosedChannelUrl, }: Props_3) => JSX.Element;
1535
+ export declare const Conversation: ({ children, onNavigateToConversationList, channelUrl, onClearChannelUrl, shouldMarkAsRead, announcementsEnabled, initialFocusTarget, style, closedChannelUrl, onClearClosedChannelUrl, }: Props_3) => JSX.Element;
1515
1536
 
1516
1537
  export declare const ConversationContext: Context<ConversationContextValue | null>;
1517
1538
 
@@ -1619,6 +1640,8 @@ declare interface ConversationHeaderTemplateProps {
1619
1640
  titleAlign?: 'start' | 'center' | 'end';
1620
1641
  }
1621
1642
 
1643
+ declare type ConversationInitialFocusTarget = 'messageInput';
1644
+
1622
1645
  declare class ConversationInitialRenderStats extends AIAgentBaseStats {
1623
1646
  private presentMethod: PresentMethod = 'direct_present';
1624
1647
 
@@ -1832,13 +1855,13 @@ export declare const ConversationListContext: Context<ConversationListContextVal
1832
1855
  declare interface ConversationListContextProps {
1833
1856
  conversationListLimit?: number;
1834
1857
  conversationListFilter?: Partial<AIAgentGroupChannelFilter>;
1835
- onOpenConversationView?: (channelUrl: string, status: 'open' | 'closed') => void;
1858
+ onOpenConversationView?: (channelUrl: string, status: 'open' | 'closed', options?: ConversationListOpenOptions) => void;
1836
1859
  }
1837
1860
 
1838
1861
  export declare function ConversationListContextProvider({ conversationListLimit, conversationListFilter, onOpenConversationView, children, }: PropsWithChildren<ConversationListContextProps>): JSX.Element;
1839
1862
 
1840
1863
  declare interface ConversationListContextValue extends AIAgentConversationListContextValue {
1841
- onOpenConversationView: (channelUrl: string, status: 'open' | 'closed') => void;
1864
+ onOpenConversationView: (channelUrl: string, status: 'open' | 'closed', options?: ConversationListOpenOptions) => void;
1842
1865
  }
1843
1866
 
1844
1867
  export declare const ConversationListHeaderLayout: {
@@ -1953,6 +1976,10 @@ export declare const ConversationListLayout: {
1953
1976
  }) => null;
1954
1977
  };
1955
1978
 
1979
+ declare interface ConversationListOpenOptions {
1980
+ initialFocusTarget?: 'messageInput';
1981
+ }
1982
+
1956
1983
  declare type ConversationMessageEvent = ConversationMessageEventPayload & { id: number };
1957
1984
 
1958
1985
  declare type ConversationMessageEventPayload =
@@ -2071,15 +2098,22 @@ export declare interface CustomMessageTemplateData {
2071
2098
  export declare type DateSeparatorProps = SBUFoundationProps<{
2072
2099
  /** date or timestamp */
2073
2100
  date?: Date | number;
2101
+ role?: AriaRole;
2074
2102
  }>;
2075
2103
 
2076
2104
  /**
2077
2105
  * Recursively makes every property of T optional, including nested objects.
2078
2106
  */
2079
- declare type DeepPartial<T> = T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T;
2107
+ declare type DeepPartial<T> = T extends (infer U)[]
2108
+ ? DeepPartial<U>[]
2109
+ : T extends object
2110
+ ? { [K in keyof T]?: DeepPartial<T[K]> }
2111
+ : T;
2080
2112
 
2081
2113
  export declare const DefaultMessenger: ForwardRefExoticComponent<MessengerProps & RefAttributes<MessengerSessionRef>>;
2082
2114
 
2115
+ declare type DeferredMarkdownElement = 'image' | 'link';
2116
+
2083
2117
  export declare interface DeskClientInterface {
2084
2118
  /** Gets a ticket by its ID. */
2085
2119
  getTicket(id: number): Promise<DeskTicketInterface>;
@@ -2151,6 +2185,12 @@ declare interface Dispatcher {
2151
2185
  ): void;
2152
2186
  }
2153
2187
 
2188
+ declare type ErrorAnnouncementParams =
2189
+ | { type: 'fileSizeExceeded'; maxSizeMB?: number }
2190
+ | { type: 'sendFailed' }
2191
+ | { type: 'csatFormError' }
2192
+ | { type: 'generic'; message: string };
2193
+
2154
2194
  /**
2155
2195
  * For better understanding: https://sendbird.atlassian.net/wiki/spaces/AA/pages/3075014695/Extended+Message+Payload+Spec
2156
2196
  */
@@ -2349,7 +2389,7 @@ BaseMessageProps<{
2349
2389
  isFeedbackEnabled?: boolean;
2350
2390
  isFeedbackCommentEnabled?: boolean;
2351
2391
  isSenderAvatarVisible?: boolean;
2352
- markdownImageRenderMode?: MarkdownImageRenderMode;
2392
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2353
2393
 
2354
2394
  // handlers
2355
2395
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
@@ -2430,7 +2470,7 @@ export declare const IncomingMessageLayout: {
2430
2470
  isFeedbackEnabled?: boolean;
2431
2471
  isFeedbackCommentEnabled?: boolean;
2432
2472
  isSenderAvatarVisible?: boolean;
2433
- markdownImageRenderMode?: MarkdownImageRenderMode;
2473
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2434
2474
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2435
2475
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2436
2476
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2508,7 +2548,7 @@ export declare const IncomingMessageLayout: {
2508
2548
  isFeedbackEnabled?: boolean;
2509
2549
  isFeedbackCommentEnabled?: boolean;
2510
2550
  isSenderAvatarVisible?: boolean;
2511
- markdownImageRenderMode?: MarkdownImageRenderMode;
2551
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2512
2552
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2513
2553
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2514
2554
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2586,7 +2626,7 @@ export declare const IncomingMessageLayout: {
2586
2626
  isFeedbackEnabled?: boolean;
2587
2627
  isFeedbackCommentEnabled?: boolean;
2588
2628
  isSenderAvatarVisible?: boolean;
2589
- markdownImageRenderMode?: MarkdownImageRenderMode;
2629
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2590
2630
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2591
2631
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2592
2632
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2660,7 +2700,7 @@ export declare const IncomingMessageLayout: {
2660
2700
  isFeedbackEnabled?: boolean;
2661
2701
  isFeedbackCommentEnabled?: boolean;
2662
2702
  isSenderAvatarVisible?: boolean;
2663
- markdownImageRenderMode?: MarkdownImageRenderMode;
2703
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2664
2704
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2665
2705
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2666
2706
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2738,7 +2778,7 @@ export declare const IncomingMessageLayout: {
2738
2778
  isFeedbackEnabled?: boolean;
2739
2779
  isFeedbackCommentEnabled?: boolean;
2740
2780
  isSenderAvatarVisible?: boolean;
2741
- markdownImageRenderMode?: MarkdownImageRenderMode;
2781
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2742
2782
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2743
2783
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2744
2784
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2816,7 +2856,7 @@ export declare const IncomingMessageLayout: {
2816
2856
  isFeedbackEnabled?: boolean;
2817
2857
  isFeedbackCommentEnabled?: boolean;
2818
2858
  isSenderAvatarVisible?: boolean;
2819
- markdownImageRenderMode?: MarkdownImageRenderMode;
2859
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2820
2860
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2821
2861
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2822
2862
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2925,7 +2965,7 @@ export declare const IncomingMessageLayout: {
2925
2965
  isFeedbackEnabled?: boolean;
2926
2966
  isFeedbackCommentEnabled?: boolean;
2927
2967
  isSenderAvatarVisible?: boolean;
2928
- markdownImageRenderMode?: MarkdownImageRenderMode;
2968
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2929
2969
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2930
2970
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2931
2971
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3003,7 +3043,7 @@ export declare const IncomingMessageLayout: {
3003
3043
  isFeedbackEnabled?: boolean;
3004
3044
  isFeedbackCommentEnabled?: boolean;
3005
3045
  isSenderAvatarVisible?: boolean;
3006
- markdownImageRenderMode?: MarkdownImageRenderMode;
3046
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3007
3047
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3008
3048
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3009
3049
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3081,7 +3121,7 @@ export declare const IncomingMessageLayout: {
3081
3121
  isFeedbackEnabled?: boolean;
3082
3122
  isFeedbackCommentEnabled?: boolean;
3083
3123
  isSenderAvatarVisible?: boolean;
3084
- markdownImageRenderMode?: MarkdownImageRenderMode;
3124
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3085
3125
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3086
3126
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3087
3127
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3155,7 +3195,7 @@ export declare const IncomingMessageLayout: {
3155
3195
  isFeedbackEnabled?: boolean;
3156
3196
  isFeedbackCommentEnabled?: boolean;
3157
3197
  isSenderAvatarVisible?: boolean;
3158
- markdownImageRenderMode?: MarkdownImageRenderMode;
3198
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3159
3199
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3160
3200
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3161
3201
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3233,7 +3273,7 @@ export declare const IncomingMessageLayout: {
3233
3273
  isFeedbackEnabled?: boolean;
3234
3274
  isFeedbackCommentEnabled?: boolean;
3235
3275
  isSenderAvatarVisible?: boolean;
3236
- markdownImageRenderMode?: MarkdownImageRenderMode;
3276
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3237
3277
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3238
3278
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3239
3279
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3311,7 +3351,7 @@ export declare const IncomingMessageLayout: {
3311
3351
  isFeedbackEnabled?: boolean;
3312
3352
  isFeedbackCommentEnabled?: boolean;
3313
3353
  isSenderAvatarVisible?: boolean;
3314
- markdownImageRenderMode?: MarkdownImageRenderMode;
3354
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3315
3355
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3316
3356
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3317
3357
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3415,7 +3455,7 @@ export declare const IncomingMessageLayout: {
3415
3455
  isFeedbackEnabled?: boolean;
3416
3456
  isFeedbackCommentEnabled?: boolean;
3417
3457
  isSenderAvatarVisible?: boolean;
3418
- markdownImageRenderMode?: MarkdownImageRenderMode;
3458
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3419
3459
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3420
3460
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3421
3461
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3493,7 +3533,7 @@ export declare const IncomingMessageLayout: {
3493
3533
  isFeedbackEnabled?: boolean;
3494
3534
  isFeedbackCommentEnabled?: boolean;
3495
3535
  isSenderAvatarVisible?: boolean;
3496
- markdownImageRenderMode?: MarkdownImageRenderMode;
3536
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3497
3537
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3498
3538
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3499
3539
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3571,7 +3611,7 @@ export declare const IncomingMessageLayout: {
3571
3611
  isFeedbackEnabled?: boolean;
3572
3612
  isFeedbackCommentEnabled?: boolean;
3573
3613
  isSenderAvatarVisible?: boolean;
3574
- markdownImageRenderMode?: MarkdownImageRenderMode;
3614
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3575
3615
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3576
3616
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3577
3617
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3645,7 +3685,7 @@ export declare const IncomingMessageLayout: {
3645
3685
  isFeedbackEnabled?: boolean;
3646
3686
  isFeedbackCommentEnabled?: boolean;
3647
3687
  isSenderAvatarVisible?: boolean;
3648
- markdownImageRenderMode?: MarkdownImageRenderMode;
3688
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3649
3689
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3650
3690
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3651
3691
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3723,7 +3763,7 @@ export declare const IncomingMessageLayout: {
3723
3763
  isFeedbackEnabled?: boolean;
3724
3764
  isFeedbackCommentEnabled?: boolean;
3725
3765
  isSenderAvatarVisible?: boolean;
3726
- markdownImageRenderMode?: MarkdownImageRenderMode;
3766
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3727
3767
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3728
3768
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3729
3769
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3801,7 +3841,7 @@ export declare const IncomingMessageLayout: {
3801
3841
  isFeedbackEnabled?: boolean;
3802
3842
  isFeedbackCommentEnabled?: boolean;
3803
3843
  isSenderAvatarVisible?: boolean;
3804
- markdownImageRenderMode?: MarkdownImageRenderMode;
3844
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3805
3845
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3806
3846
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3807
3847
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3928,7 +3968,7 @@ export declare const IncomingMessageLayout: {
3928
3968
  isFeedbackEnabled?: boolean;
3929
3969
  isFeedbackCommentEnabled?: boolean;
3930
3970
  isSenderAvatarVisible?: boolean;
3931
- markdownImageRenderMode?: MarkdownImageRenderMode;
3971
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3932
3972
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3933
3973
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3934
3974
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4006,7 +4046,7 @@ export declare const IncomingMessageLayout: {
4006
4046
  isFeedbackEnabled?: boolean;
4007
4047
  isFeedbackCommentEnabled?: boolean;
4008
4048
  isSenderAvatarVisible?: boolean;
4009
- markdownImageRenderMode?: MarkdownImageRenderMode;
4049
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4010
4050
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4011
4051
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4012
4052
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4084,7 +4124,7 @@ export declare const IncomingMessageLayout: {
4084
4124
  isFeedbackEnabled?: boolean;
4085
4125
  isFeedbackCommentEnabled?: boolean;
4086
4126
  isSenderAvatarVisible?: boolean;
4087
- markdownImageRenderMode?: MarkdownImageRenderMode;
4127
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4088
4128
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4089
4129
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4090
4130
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4160,7 +4200,7 @@ export declare const IncomingMessageLayout: {
4160
4200
  isFeedbackEnabled?: boolean;
4161
4201
  isFeedbackCommentEnabled?: boolean;
4162
4202
  isSenderAvatarVisible?: boolean;
4163
- markdownImageRenderMode?: MarkdownImageRenderMode;
4203
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4164
4204
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4165
4205
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4166
4206
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4238,7 +4278,7 @@ export declare const IncomingMessageLayout: {
4238
4278
  isFeedbackEnabled?: boolean;
4239
4279
  isFeedbackCommentEnabled?: boolean;
4240
4280
  isSenderAvatarVisible?: boolean;
4241
- markdownImageRenderMode?: MarkdownImageRenderMode;
4281
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4242
4282
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4243
4283
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4244
4284
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4316,7 +4356,7 @@ export declare const IncomingMessageLayout: {
4316
4356
  isFeedbackEnabled?: boolean;
4317
4357
  isFeedbackCommentEnabled?: boolean;
4318
4358
  isSenderAvatarVisible?: boolean;
4319
- markdownImageRenderMode?: MarkdownImageRenderMode;
4359
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4320
4360
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4321
4361
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4322
4362
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4434,6 +4474,11 @@ declare type InternalExtraProps = {
4434
4474
  testerMode?: boolean;
4435
4475
  };
4436
4476
 
4477
+ declare type InternalExtraProps_2 = {
4478
+ announceStatus?: (params: StatusAnnouncementParams, options?: StatusAnnouncementOptions) => void;
4479
+ announceError?: (params: ErrorAnnouncementParams, focusTarget?: HTMLElement | null) => void;
4480
+ };
4481
+
4437
4482
  declare interface InternalMessageTemplateVariables {
4438
4483
  carousel_padding_left?: number;
4439
4484
  carousel_padding_right?: number;
@@ -4520,8 +4565,6 @@ declare interface ManualSessionInfoParams {
4520
4565
  sessionHandler: AIAgentSessionHandler;
4521
4566
  }
4522
4567
 
4523
- declare type MarkdownImageRenderMode = 'default' | 'complete-only';
4524
-
4525
4568
  declare interface MemoryInfo {
4526
4569
  enabled: boolean;
4527
4570
  showIndicator: boolean;
@@ -4544,7 +4587,7 @@ export declare const MessageListUILayout: {
4544
4587
  defaults: {
4545
4588
  template: ComponentType<unknown>;
4546
4589
  components: {
4547
- DateSeparator: ({ className, date, style }: DateSeparatorProps) => ReactNode;
4590
+ DateSeparator: ({ className, date, role, style }: DateSeparatorProps) => ReactNode;
4548
4591
  ScrollToBottomButton: ({ className, style, onClick }: ScrollToBottomButtonProps) => ReactNode;
4549
4592
  };
4550
4593
  };
@@ -4553,23 +4596,23 @@ export declare const MessageListUILayout: {
4553
4596
  children?: ReactNode;
4554
4597
  }) => JSX.Element;
4555
4598
  Context: Context<LayoutContextValue<unknown, {
4556
- DateSeparator: ({ className, date, style }: DateSeparatorProps) => ReactNode;
4599
+ DateSeparator: ({ className, date, role, style }: DateSeparatorProps) => ReactNode;
4557
4600
  ScrollToBottomButton: ({ className, style, onClick }: ScrollToBottomButtonProps) => ReactNode;
4558
4601
  }>>;
4559
4602
  useContext: () => LayoutContextValue<unknown, {
4560
- DateSeparator: ({ className, date, style }: DateSeparatorProps) => ReactNode;
4603
+ DateSeparator: ({ className, date, role, style }: DateSeparatorProps) => ReactNode;
4561
4604
  ScrollToBottomButton: ({ className, style, onClick }: ScrollToBottomButtonProps) => ReactNode;
4562
4605
  }>;
4563
4606
  } & {
4564
4607
  DateSeparator: (props: {
4565
- component: ({ className, date, style }: DateSeparatorProps) => ReactNode;
4608
+ component: ({ className, date, role, style }: DateSeparatorProps) => ReactNode;
4566
4609
  }) => null;
4567
4610
  ScrollToBottomButton: (props: {
4568
4611
  component: ({ className, style, onClick }: ScrollToBottomButtonProps) => ReactNode;
4569
4612
  }) => null;
4570
4613
  };
4571
4614
 
4572
- export declare const MessageLogs: ({ actionbook, functionCalls, groundedness, agentMessageTemplates, onClickActionbook, onClickFunctionCall, onClickFunctionCallDetail, onClickGroundedness, onClickAgentMessageTemplate, bottomContent, renderCustomGroundednessIcon, style, }: Props_2) => JSX.Element;
4615
+ export declare const MessageLogs: ({ actionbook, functionCalls, groundedness, agentMessageTemplates, onClickActionbook, onClickFunctionCall, onClickFunctionCallDetail, onClickGroundedness, onClickAgentMessageTemplate, topContent, bottomContent, renderCustomGroundednessIcon, style, }: Props_2) => JSX.Element;
4573
4616
 
4574
4617
  declare interface MessageTemplateCache {
4575
4618
  set(key: string, value: string): void;
@@ -4694,7 +4737,7 @@ declare interface MessengerSessionContextValue extends AIAgentMessengerSessionCo
4694
4737
  export declare interface MessengerSessionRef extends AIAgentMessengerSessionRef {
4695
4738
  }
4696
4739
 
4697
- declare interface MessengerSettingsResponse {
4740
+ export declare interface MessengerSettingsResponse {
4698
4741
  active_channel: {
4699
4742
  channel_url: string;
4700
4743
  attachment_mode: 'always' | 'handed_off_only' | 'off';
@@ -5081,6 +5124,7 @@ declare type Props_2 = {
5081
5124
  barColor?: string;
5082
5125
  highlightColor?: string;
5083
5126
  };
5127
+ topContent?: ReactNode;
5084
5128
  bottomContent?: ReactNode;
5085
5129
  renderCustomGroundednessIcon?: (props: {
5086
5130
  default: ReactNode;
@@ -5094,6 +5138,7 @@ declare type Props_3 = PropsWithChildren<{
5094
5138
  onNavigateToConversationList?: () => void;
5095
5139
  shouldMarkAsRead?: boolean;
5096
5140
  announcementsEnabled?: boolean;
5141
+ initialFocusTarget?: ConversationInitialFocusTarget;
5097
5142
  /** Custom styles for the conversation container. */
5098
5143
  style?: CSSProperties;
5099
5144
  /** @deprecated Please use `channelUrl` instead. **/
@@ -5105,7 +5150,7 @@ declare type Props_3 = PropsWithChildren<{
5105
5150
  declare type Props_4 = PropsWithChildren<{
5106
5151
  conversationListLimit?: number;
5107
5152
  conversationListFilter?: Partial<AIAgentGroupChannelFilter>;
5108
- onOpenConversationView?: (channelUrl: string, status: 'open' | 'closed') => void;
5153
+ onOpenConversationView?: (channelUrl: string, status: 'open' | 'closed', options?: ConversationListOpenOptions) => void;
5109
5154
  announcementsEnabled?: boolean;
5110
5155
  /** Custom styles for the conversation list container. */
5111
5156
  style?: CSSProperties;
@@ -5164,6 +5209,26 @@ declare type SingleSelectField = {
5164
5209
 
5165
5210
  declare type StatsAppendCallback = (type: string, data: AIAgentStatPayload) => boolean;
5166
5211
 
5212
+ /** Per-event override for the platform `announceStatus` wrappers — same shape as `AnnounceOptions`. */
5213
+ declare type StatusAnnouncementOptions = AnnounceOptions;
5214
+
5215
+ declare type StatusAnnouncementParams =
5216
+ | {
5217
+ event: 'newMessage';
5218
+ senderName?: string;
5219
+ body?: string;
5220
+ time?: string;
5221
+ }
5222
+ | { event: 'typing'; agentName?: string }
5223
+ | { event: 'sendFailed' }
5224
+ | { event: 'agentConnected'; agentName?: string }
5225
+ | { event: 'conversationClosed' }
5226
+ | { event: 'csatDisplayed' }
5227
+ | { event: 'csatSubmitted'; submittedLabel: string }
5228
+ | { event: 'csatExpired' }
5229
+ | { event: 'emptyState' }
5230
+ | { event: 'inputDisabled' };
5231
+
5167
5232
  declare interface Steward {
5168
5233
  title: string;
5169
5234
  description?: string;
@@ -5201,7 +5266,7 @@ declare enum StewardTaskStatus {
5201
5266
  * StringSet type for React components
5202
5267
  * Uses SNAKE_CASE keys for backward compatibility
5203
5268
  */
5204
- declare type StringSet = {
5269
+ export declare type StringSet = {
5205
5270
  PLACE_HOLDER__WRONG: string;
5206
5271
  PLACE_HOLDER__NO_MESSAGES: string;
5207
5272
  UNKNOWN__UNKNOWN_MESSAGE_TYPE: string;
@@ -5400,39 +5465,46 @@ declare type StringSet = {
5400
5465
 
5401
5466
  declare type SystemBaseMessageProps<T> = T & BaseMessageProps<{}>;
5402
5467
 
5468
+ declare type SystemCSATMessageProps = SystemMessageProps & {
5469
+ announceStatus?: (params: StatusAnnouncementParams, options?: StatusAnnouncementOptions) => void;
5470
+ announceError?: (params: ErrorAnnouncementParams, focusTarget?: HTMLElement | null) => void;
5471
+ };
5472
+
5403
5473
  export declare const SystemMessageLayout: {
5404
5474
  (props: PropsWithChildren): ReactNode;
5405
5475
  defaults: {
5406
- template: ComponentType<SystemMessageProps>;
5476
+ template: ComponentType<SystemMessageTemplateProps>;
5407
5477
  components: {
5408
5478
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5409
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5479
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5410
5480
  };
5411
5481
  };
5412
5482
  Template: ({ template, children }: {
5413
- template?: ComponentType<SystemMessageProps> | undefined;
5483
+ template?: ComponentType<SystemMessageTemplateProps> | undefined;
5414
5484
  children?: ReactNode;
5415
5485
  }) => JSX.Element;
5416
- Context: Context<LayoutContextValue<SystemMessageProps, {
5486
+ Context: Context<LayoutContextValue<SystemMessageTemplateProps, {
5417
5487
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5418
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5488
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5419
5489
  }>>;
5420
- useContext: () => LayoutContextValue<SystemMessageProps, {
5490
+ useContext: () => LayoutContextValue<SystemMessageTemplateProps, {
5421
5491
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5422
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5492
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5423
5493
  }>;
5424
5494
  } & {
5425
5495
  AdminMessage: (props: {
5426
5496
  component: (props: SystemMessageProps) => ReactNode;
5427
5497
  }) => null;
5428
5498
  CSATMessage: (props: {
5429
- component: (props: SystemMessageProps) => ReactNode;
5499
+ component: (props: SystemCSATMessageProps) => ReactNode;
5430
5500
  }) => null;
5431
5501
  };
5432
5502
 
5433
5503
  export declare type SystemMessageProps<T extends SystemMessageUnion['messageType'] = SystemMessageUnion['messageType']> =
5434
5504
  PickMessageProps<SystemMessageUnion, T>;
5435
5505
 
5506
+ declare type SystemMessageTemplateProps = SystemMessageProps & Partial<InternalExtraProps_2>;
5507
+
5436
5508
  declare type SystemMessageUnion =
5437
5509
  | SystemBaseMessageProps<{
5438
5510
  messageType: 'admin';