@sendbird/ai-agent-messenger-react 1.30.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
@@ -476,19 +476,15 @@ declare interface AIAgentConfig_2 {
476
476
  * */
477
477
  senderAvatarEnabled: boolean;
478
478
  /**
479
- * Controls how markdown images are displayed while a message is streaming.
480
- * - `default`: Renders partial markdown as-is.
481
- * - `complete-only`: Hides incomplete image markdown until the image token is complete.
482
- * @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 []
483
482
  * */
484
- markdownImageRenderMode: MarkdownImageRenderMode;
485
- /**
486
- * Controls how markdown links are displayed while a message is streaming.
487
- * - `default`: Renders partial markdown as-is.
488
- * - `complete-only`: Hides incomplete link markdown until the link token is complete.
489
- * @default 'default'
490
- * */
491
- markdownLinkRenderMode: MarkdownLinkRenderMode;
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';
492
488
  };
493
489
  header: {
494
490
  /**
@@ -1258,6 +1254,23 @@ declare interface AIAgentStringSet {
1258
1254
  };
1259
1255
  }
1260
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
+
1261
1274
  declare type AnonUserSessionData = { userId: string; authToken: string; expireAt: number };
1262
1275
 
1263
1276
  export declare class AnonymousSessionInfo {
@@ -2091,10 +2104,16 @@ export declare type DateSeparatorProps = SBUFoundationProps<{
2091
2104
  /**
2092
2105
  * Recursively makes every property of T optional, including nested objects.
2093
2106
  */
2094
- 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;
2095
2112
 
2096
2113
  export declare const DefaultMessenger: ForwardRefExoticComponent<MessengerProps & RefAttributes<MessengerSessionRef>>;
2097
2114
 
2115
+ declare type DeferredMarkdownElement = 'image' | 'link';
2116
+
2098
2117
  export declare interface DeskClientInterface {
2099
2118
  /** Gets a ticket by its ID. */
2100
2119
  getTicket(id: number): Promise<DeskTicketInterface>;
@@ -2166,6 +2185,12 @@ declare interface Dispatcher {
2166
2185
  ): void;
2167
2186
  }
2168
2187
 
2188
+ declare type ErrorAnnouncementParams =
2189
+ | { type: 'fileSizeExceeded'; maxSizeMB?: number }
2190
+ | { type: 'sendFailed' }
2191
+ | { type: 'csatFormError' }
2192
+ | { type: 'generic'; message: string };
2193
+
2169
2194
  /**
2170
2195
  * For better understanding: https://sendbird.atlassian.net/wiki/spaces/AA/pages/3075014695/Extended+Message+Payload+Spec
2171
2196
  */
@@ -2364,8 +2389,7 @@ BaseMessageProps<{
2364
2389
  isFeedbackEnabled?: boolean;
2365
2390
  isFeedbackCommentEnabled?: boolean;
2366
2391
  isSenderAvatarVisible?: boolean;
2367
- markdownImageRenderMode?: MarkdownImageRenderMode;
2368
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2392
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2369
2393
 
2370
2394
  // handlers
2371
2395
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
@@ -2446,8 +2470,7 @@ export declare const IncomingMessageLayout: {
2446
2470
  isFeedbackEnabled?: boolean;
2447
2471
  isFeedbackCommentEnabled?: boolean;
2448
2472
  isSenderAvatarVisible?: boolean;
2449
- markdownImageRenderMode?: MarkdownImageRenderMode;
2450
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2473
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2451
2474
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2452
2475
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2453
2476
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2525,8 +2548,7 @@ export declare const IncomingMessageLayout: {
2525
2548
  isFeedbackEnabled?: boolean;
2526
2549
  isFeedbackCommentEnabled?: boolean;
2527
2550
  isSenderAvatarVisible?: boolean;
2528
- markdownImageRenderMode?: MarkdownImageRenderMode;
2529
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2551
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2530
2552
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2531
2553
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2532
2554
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2604,8 +2626,7 @@ export declare const IncomingMessageLayout: {
2604
2626
  isFeedbackEnabled?: boolean;
2605
2627
  isFeedbackCommentEnabled?: boolean;
2606
2628
  isSenderAvatarVisible?: boolean;
2607
- markdownImageRenderMode?: MarkdownImageRenderMode;
2608
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2629
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2609
2630
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2610
2631
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2611
2632
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2679,8 +2700,7 @@ export declare const IncomingMessageLayout: {
2679
2700
  isFeedbackEnabled?: boolean;
2680
2701
  isFeedbackCommentEnabled?: boolean;
2681
2702
  isSenderAvatarVisible?: boolean;
2682
- markdownImageRenderMode?: MarkdownImageRenderMode;
2683
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2703
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2684
2704
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2685
2705
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2686
2706
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2758,8 +2778,7 @@ export declare const IncomingMessageLayout: {
2758
2778
  isFeedbackEnabled?: boolean;
2759
2779
  isFeedbackCommentEnabled?: boolean;
2760
2780
  isSenderAvatarVisible?: boolean;
2761
- markdownImageRenderMode?: MarkdownImageRenderMode;
2762
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2781
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2763
2782
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2764
2783
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2765
2784
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2837,8 +2856,7 @@ export declare const IncomingMessageLayout: {
2837
2856
  isFeedbackEnabled?: boolean;
2838
2857
  isFeedbackCommentEnabled?: boolean;
2839
2858
  isSenderAvatarVisible?: boolean;
2840
- markdownImageRenderMode?: MarkdownImageRenderMode;
2841
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2859
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2842
2860
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2843
2861
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2844
2862
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -2947,8 +2965,7 @@ export declare const IncomingMessageLayout: {
2947
2965
  isFeedbackEnabled?: boolean;
2948
2966
  isFeedbackCommentEnabled?: boolean;
2949
2967
  isSenderAvatarVisible?: boolean;
2950
- markdownImageRenderMode?: MarkdownImageRenderMode;
2951
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
2968
+ deferredMarkdownElements?: DeferredMarkdownElement[];
2952
2969
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
2953
2970
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
2954
2971
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3026,8 +3043,7 @@ export declare const IncomingMessageLayout: {
3026
3043
  isFeedbackEnabled?: boolean;
3027
3044
  isFeedbackCommentEnabled?: boolean;
3028
3045
  isSenderAvatarVisible?: boolean;
3029
- markdownImageRenderMode?: MarkdownImageRenderMode;
3030
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3046
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3031
3047
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3032
3048
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3033
3049
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3105,8 +3121,7 @@ export declare const IncomingMessageLayout: {
3105
3121
  isFeedbackEnabled?: boolean;
3106
3122
  isFeedbackCommentEnabled?: boolean;
3107
3123
  isSenderAvatarVisible?: boolean;
3108
- markdownImageRenderMode?: MarkdownImageRenderMode;
3109
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3124
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3110
3125
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3111
3126
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3112
3127
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3180,8 +3195,7 @@ export declare const IncomingMessageLayout: {
3180
3195
  isFeedbackEnabled?: boolean;
3181
3196
  isFeedbackCommentEnabled?: boolean;
3182
3197
  isSenderAvatarVisible?: boolean;
3183
- markdownImageRenderMode?: MarkdownImageRenderMode;
3184
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3198
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3185
3199
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3186
3200
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3187
3201
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3259,8 +3273,7 @@ export declare const IncomingMessageLayout: {
3259
3273
  isFeedbackEnabled?: boolean;
3260
3274
  isFeedbackCommentEnabled?: boolean;
3261
3275
  isSenderAvatarVisible?: boolean;
3262
- markdownImageRenderMode?: MarkdownImageRenderMode;
3263
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3276
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3264
3277
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3265
3278
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3266
3279
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3338,8 +3351,7 @@ export declare const IncomingMessageLayout: {
3338
3351
  isFeedbackEnabled?: boolean;
3339
3352
  isFeedbackCommentEnabled?: boolean;
3340
3353
  isSenderAvatarVisible?: boolean;
3341
- markdownImageRenderMode?: MarkdownImageRenderMode;
3342
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3354
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3343
3355
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3344
3356
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3345
3357
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3443,8 +3455,7 @@ export declare const IncomingMessageLayout: {
3443
3455
  isFeedbackEnabled?: boolean;
3444
3456
  isFeedbackCommentEnabled?: boolean;
3445
3457
  isSenderAvatarVisible?: boolean;
3446
- markdownImageRenderMode?: MarkdownImageRenderMode;
3447
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3458
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3448
3459
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3449
3460
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3450
3461
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3522,8 +3533,7 @@ export declare const IncomingMessageLayout: {
3522
3533
  isFeedbackEnabled?: boolean;
3523
3534
  isFeedbackCommentEnabled?: boolean;
3524
3535
  isSenderAvatarVisible?: boolean;
3525
- markdownImageRenderMode?: MarkdownImageRenderMode;
3526
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3536
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3527
3537
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3528
3538
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3529
3539
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3601,8 +3611,7 @@ export declare const IncomingMessageLayout: {
3601
3611
  isFeedbackEnabled?: boolean;
3602
3612
  isFeedbackCommentEnabled?: boolean;
3603
3613
  isSenderAvatarVisible?: boolean;
3604
- markdownImageRenderMode?: MarkdownImageRenderMode;
3605
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3614
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3606
3615
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3607
3616
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3608
3617
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3676,8 +3685,7 @@ export declare const IncomingMessageLayout: {
3676
3685
  isFeedbackEnabled?: boolean;
3677
3686
  isFeedbackCommentEnabled?: boolean;
3678
3687
  isSenderAvatarVisible?: boolean;
3679
- markdownImageRenderMode?: MarkdownImageRenderMode;
3680
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3688
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3681
3689
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3682
3690
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3683
3691
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3755,8 +3763,7 @@ export declare const IncomingMessageLayout: {
3755
3763
  isFeedbackEnabled?: boolean;
3756
3764
  isFeedbackCommentEnabled?: boolean;
3757
3765
  isSenderAvatarVisible?: boolean;
3758
- markdownImageRenderMode?: MarkdownImageRenderMode;
3759
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3766
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3760
3767
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3761
3768
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3762
3769
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3834,8 +3841,7 @@ export declare const IncomingMessageLayout: {
3834
3841
  isFeedbackEnabled?: boolean;
3835
3842
  isFeedbackCommentEnabled?: boolean;
3836
3843
  isSenderAvatarVisible?: boolean;
3837
- markdownImageRenderMode?: MarkdownImageRenderMode;
3838
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3844
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3839
3845
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3840
3846
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3841
3847
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -3962,8 +3968,7 @@ export declare const IncomingMessageLayout: {
3962
3968
  isFeedbackEnabled?: boolean;
3963
3969
  isFeedbackCommentEnabled?: boolean;
3964
3970
  isSenderAvatarVisible?: boolean;
3965
- markdownImageRenderMode?: MarkdownImageRenderMode;
3966
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
3971
+ deferredMarkdownElements?: DeferredMarkdownElement[];
3967
3972
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
3968
3973
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
3969
3974
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4041,8 +4046,7 @@ export declare const IncomingMessageLayout: {
4041
4046
  isFeedbackEnabled?: boolean;
4042
4047
  isFeedbackCommentEnabled?: boolean;
4043
4048
  isSenderAvatarVisible?: boolean;
4044
- markdownImageRenderMode?: MarkdownImageRenderMode;
4045
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
4049
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4046
4050
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4047
4051
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4048
4052
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4120,8 +4124,7 @@ export declare const IncomingMessageLayout: {
4120
4124
  isFeedbackEnabled?: boolean;
4121
4125
  isFeedbackCommentEnabled?: boolean;
4122
4126
  isSenderAvatarVisible?: boolean;
4123
- markdownImageRenderMode?: MarkdownImageRenderMode;
4124
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
4127
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4125
4128
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4126
4129
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4127
4130
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4197,8 +4200,7 @@ export declare const IncomingMessageLayout: {
4197
4200
  isFeedbackEnabled?: boolean;
4198
4201
  isFeedbackCommentEnabled?: boolean;
4199
4202
  isSenderAvatarVisible?: boolean;
4200
- markdownImageRenderMode?: MarkdownImageRenderMode;
4201
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
4203
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4202
4204
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4203
4205
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4204
4206
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4276,8 +4278,7 @@ export declare const IncomingMessageLayout: {
4276
4278
  isFeedbackEnabled?: boolean;
4277
4279
  isFeedbackCommentEnabled?: boolean;
4278
4280
  isSenderAvatarVisible?: boolean;
4279
- markdownImageRenderMode?: MarkdownImageRenderMode;
4280
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
4281
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4281
4282
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4282
4283
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4283
4284
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4355,8 +4356,7 @@ export declare const IncomingMessageLayout: {
4355
4356
  isFeedbackEnabled?: boolean;
4356
4357
  isFeedbackCommentEnabled?: boolean;
4357
4358
  isSenderAvatarVisible?: boolean;
4358
- markdownImageRenderMode?: MarkdownImageRenderMode;
4359
- markdownLinkRenderMode?: MarkdownLinkRenderMode;
4359
+ deferredMarkdownElements?: DeferredMarkdownElement[];
4360
4360
  onGetCachedMessageTemplate?: (templateKey: string) => string | null;
4361
4361
  onRequestMessageTemplate?: (templateKey: string) => Promise<string>;
4362
4362
  onHandleTemplateInternalAction?: (action: Action) => void;
@@ -4474,6 +4474,11 @@ declare type InternalExtraProps = {
4474
4474
  testerMode?: boolean;
4475
4475
  };
4476
4476
 
4477
+ declare type InternalExtraProps_2 = {
4478
+ announceStatus?: (params: StatusAnnouncementParams, options?: StatusAnnouncementOptions) => void;
4479
+ announceError?: (params: ErrorAnnouncementParams, focusTarget?: HTMLElement | null) => void;
4480
+ };
4481
+
4477
4482
  declare interface InternalMessageTemplateVariables {
4478
4483
  carousel_padding_left?: number;
4479
4484
  carousel_padding_right?: number;
@@ -4560,10 +4565,6 @@ declare interface ManualSessionInfoParams {
4560
4565
  sessionHandler: AIAgentSessionHandler;
4561
4566
  }
4562
4567
 
4563
- declare type MarkdownImageRenderMode = 'default' | 'complete-only';
4564
-
4565
- declare type MarkdownLinkRenderMode = 'default' | 'complete-only';
4566
-
4567
4568
  declare interface MemoryInfo {
4568
4569
  enabled: boolean;
4569
4570
  showIndicator: boolean;
@@ -4736,7 +4737,7 @@ declare interface MessengerSessionContextValue extends AIAgentMessengerSessionCo
4736
4737
  export declare interface MessengerSessionRef extends AIAgentMessengerSessionRef {
4737
4738
  }
4738
4739
 
4739
- declare interface MessengerSettingsResponse {
4740
+ export declare interface MessengerSettingsResponse {
4740
4741
  active_channel: {
4741
4742
  channel_url: string;
4742
4743
  attachment_mode: 'always' | 'handed_off_only' | 'off';
@@ -5208,6 +5209,26 @@ declare type SingleSelectField = {
5208
5209
 
5209
5210
  declare type StatsAppendCallback = (type: string, data: AIAgentStatPayload) => boolean;
5210
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
+
5211
5232
  declare interface Steward {
5212
5233
  title: string;
5213
5234
  description?: string;
@@ -5245,7 +5266,7 @@ declare enum StewardTaskStatus {
5245
5266
  * StringSet type for React components
5246
5267
  * Uses SNAKE_CASE keys for backward compatibility
5247
5268
  */
5248
- declare type StringSet = {
5269
+ export declare type StringSet = {
5249
5270
  PLACE_HOLDER__WRONG: string;
5250
5271
  PLACE_HOLDER__NO_MESSAGES: string;
5251
5272
  UNKNOWN__UNKNOWN_MESSAGE_TYPE: string;
@@ -5444,39 +5465,46 @@ declare type StringSet = {
5444
5465
 
5445
5466
  declare type SystemBaseMessageProps<T> = T & BaseMessageProps<{}>;
5446
5467
 
5468
+ declare type SystemCSATMessageProps = SystemMessageProps & {
5469
+ announceStatus?: (params: StatusAnnouncementParams, options?: StatusAnnouncementOptions) => void;
5470
+ announceError?: (params: ErrorAnnouncementParams, focusTarget?: HTMLElement | null) => void;
5471
+ };
5472
+
5447
5473
  export declare const SystemMessageLayout: {
5448
5474
  (props: PropsWithChildren): ReactNode;
5449
5475
  defaults: {
5450
- template: ComponentType<SystemMessageProps>;
5476
+ template: ComponentType<SystemMessageTemplateProps>;
5451
5477
  components: {
5452
5478
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5453
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5479
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5454
5480
  };
5455
5481
  };
5456
5482
  Template: ({ template, children }: {
5457
- template?: ComponentType<SystemMessageProps> | undefined;
5483
+ template?: ComponentType<SystemMessageTemplateProps> | undefined;
5458
5484
  children?: ReactNode;
5459
5485
  }) => JSX.Element;
5460
- Context: Context<LayoutContextValue<SystemMessageProps, {
5486
+ Context: Context<LayoutContextValue<SystemMessageTemplateProps, {
5461
5487
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5462
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5488
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5463
5489
  }>>;
5464
- useContext: () => LayoutContextValue<SystemMessageProps, {
5490
+ useContext: () => LayoutContextValue<SystemMessageTemplateProps, {
5465
5491
  AdminMessage: (props: SystemMessageProps) => ReactNode;
5466
- CSATMessage: (props: SystemMessageProps) => ReactNode;
5492
+ CSATMessage: (props: SystemCSATMessageProps) => ReactNode;
5467
5493
  }>;
5468
5494
  } & {
5469
5495
  AdminMessage: (props: {
5470
5496
  component: (props: SystemMessageProps) => ReactNode;
5471
5497
  }) => null;
5472
5498
  CSATMessage: (props: {
5473
- component: (props: SystemMessageProps) => ReactNode;
5499
+ component: (props: SystemCSATMessageProps) => ReactNode;
5474
5500
  }) => null;
5475
5501
  };
5476
5502
 
5477
5503
  export declare type SystemMessageProps<T extends SystemMessageUnion['messageType'] = SystemMessageUnion['messageType']> =
5478
5504
  PickMessageProps<SystemMessageUnion, T>;
5479
5505
 
5506
+ declare type SystemMessageTemplateProps = SystemMessageProps & Partial<InternalExtraProps_2>;
5507
+
5480
5508
  declare type SystemMessageUnion =
5481
5509
  | SystemBaseMessageProps<{
5482
5510
  messageType: 'admin';