@sendbird/ai-agent-messenger-react 1.24.0 → 1.25.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,43 +1,43 @@
1
1
  import { Action } from '@sendbird/uikit-message-template';
2
- import { AIAgentChannelFilter } from '@sendbird/chat/aiAgent';
3
- import { AIAgentGroupChannelListQuery } from '@sendbird/chat/aiAgent';
4
- import { AIAgentModule } from '@sendbird/chat/aiAgent';
5
- import { BaseChannel } from '@sendbird/chat';
6
- import { BaseMessage } from '@sendbird/chat/message';
2
+ import type { AIAgentChannelFilter } from '@sendbird/chat/aiAgent';
3
+ import type { AIAgentGroupChannelListQuery } from '@sendbird/chat/aiAgent';
4
+ import type { AIAgentModule } from '@sendbird/chat/aiAgent';
5
+ import type { BaseChannel } from '@sendbird/chat';
6
+ import type { BaseMessage } from '@sendbird/chat/message';
7
7
  import type { CollectionEventSource } from '@sendbird/chat';
8
8
  import { ComponentType } from 'react';
9
- import { ConnectionHandler } from '@sendbird/chat';
9
+ import type { ConnectionHandler } from '@sendbird/chat';
10
10
  import { Context } from 'react';
11
- import { Conversation as Conversation_2 } from '@sendbird/chat/aiAgent';
12
- import { ConversationStatus } from '@sendbird/chat/aiAgent';
11
+ import type { Conversation as Conversation_2 } from '@sendbird/chat/aiAgent';
12
+ import type { ConversationStatus } from '@sendbird/chat/aiAgent';
13
13
  import { CSSProperties } from 'react';
14
- import { DeskChannelFilter } from '@sendbird/chat/aiAgent';
15
- import { FileMessage } from '@sendbird/chat/message';
16
- import { FileMessageCreateParams } from '@sendbird/chat/message';
14
+ import type { DeskChannelFilter } from '@sendbird/chat/aiAgent';
15
+ import type { FileMessage } from '@sendbird/chat/message';
16
+ import type { FileMessageCreateParams } from '@sendbird/chat/message';
17
17
  import { format } from 'date-fns';
18
18
  import { ForwardRefExoticComponent } from 'react';
19
- import { GroupChannel } from '@sendbird/chat/groupChannel';
20
- import { GroupChannelChangelogs } from '@sendbird/chat/aiAgent';
21
- import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
22
- import { GroupChannelListOrder } from '@sendbird/chat/groupChannel';
23
- import { GroupChannelModule } from '@sendbird/chat/groupChannel';
19
+ import type { GroupChannel } from '@sendbird/chat/groupChannel';
20
+ import type { GroupChannelChangelogs } from '@sendbird/chat/aiAgent';
21
+ import type { GroupChannelHandler } from '@sendbird/chat/groupChannel';
22
+ import type { GroupChannelListOrder } from '@sendbird/chat/groupChannel';
23
+ import type { GroupChannelModule } from '@sendbird/chat/groupChannel';
24
24
  import { JSX } from 'react/jsx-runtime';
25
25
  import type { Locale } from 'date-fns';
26
- import { LogLevel as LogLevel_2 } from '@sendbird/chat';
27
- import { MultipleFilesMessage } from '@sendbird/chat/message';
28
- import { MultipleFilesMessageCreateParams } from '@sendbird/chat/message';
26
+ import type { LogLevel as LogLevel_2 } from '@sendbird/chat';
27
+ import type { MultipleFilesMessage } from '@sendbird/chat/message';
28
+ import type { MultipleFilesMessageCreateParams } from '@sendbird/chat/message';
29
29
  import { PropsWithChildren } from 'react';
30
30
  import { ReactNode } from 'react';
31
31
  import { RefAttributes } from 'react';
32
32
  import { RefObject } from 'react';
33
- import { SendbirdChatParams } from '@sendbird/chat';
34
- import { SendbirdChatWith } from '@sendbird/chat';
35
- import { SendbirdError } from '@sendbird/chat';
36
- import { SessionHandler } from '@sendbird/chat';
33
+ import type { SendbirdChatParams } from '@sendbird/chat';
34
+ import type { SendbirdChatWith } from '@sendbird/chat';
35
+ import type { SendbirdError } from '@sendbird/chat';
36
+ import type { SessionHandler } from '@sendbird/chat';
37
37
  import { UIEvent as UIEvent_2 } from 'react';
38
- import { User } from '@sendbird/chat';
39
- import { UserMessage } from '@sendbird/chat/message';
40
- import { UserMessageCreateParams } from '@sendbird/chat/message';
38
+ import type { User } from '@sendbird/chat';
39
+ import type { UserMessage } from '@sendbird/chat/message';
40
+ import type { UserMessageCreateParams } from '@sendbird/chat/message';
41
41
 
42
42
  export declare interface ActionbookInfo {
43
43
  key: string;
@@ -58,19 +58,18 @@ declare interface ActiveChannel {
58
58
  * @description Conversation status of the active channel.
59
59
  * If the conversation is not started, this will be undefined.
60
60
  * */
61
- conversationStatus?: ConversationStatus;
61
+ conversationStatus?: ChatSDKConversationStatus;
62
62
  }
63
63
 
64
64
  declare interface ActiveChannelUpdatedParams {
65
65
  channelUrl: string;
66
66
  status: ActiveChannel['status'];
67
- conversationStatus?: ConversationStatus;
67
+ conversationStatus?: ChatSDKConversationStatus;
68
68
  }
69
69
 
70
- export declare interface AgentClientHandlers {
70
+ export declare interface AgentClientHandlers extends AIAgentClientHandlers {
71
71
  onMessageSend?: (message: string) => void;
72
72
  onFunctionCallDetailClick?: (func: FunctionCallsInfo) => void;
73
- onCustomEvent?: (event: CustomEvent_2) => void;
74
73
  onInitializeFailed?: (error: Error) => void;
75
74
  }
76
75
 
@@ -151,12 +150,12 @@ customWebSocketHost?: string;
151
150
  * @public
152
151
  * @description Inject a custom Chat SDK. GroupChannelModule and AIAgentModule must be included in the initialization.
153
152
  * */
154
- customChatSDK?: SendbirdChatWith<[GroupChannelModule, AIAgentModule]>;
153
+ customChatSDK?: AIAgentChatSDK;
155
154
  /**
156
155
  * @public
157
156
  * @description Custom parameters for initializing the chat SDK.
158
157
  * */
159
- chatParams?: Partial<SendbirdChatParams<[GroupChannelModule, AIAgentModule]>>;
158
+ chatParams?: Partial<AIAgentChatSDKParams>;
160
159
  /**
161
160
  * @public
162
161
  * @description Custom state management for the ai agent client.
@@ -212,7 +211,7 @@ dir?: "ltr" | "rtl";
212
211
  * @public
213
212
  * @description logLevel for the ai agent client.
214
213
  * */
215
- logLevel?: LogLevel_2;
214
+ logLevel?: ChatSDKLogLevel;
216
215
  /**
217
216
  * @public
218
217
  * @description Language for the ai agent client. Should follow the IETF BCP 47 format.
@@ -290,7 +289,7 @@ __internalVariables?: InternalMessageTemplateVariables;
290
289
  children?: ReactNode | undefined;
291
290
  } & RefAttributes<MessengerSessionRef>>;
292
291
 
293
- export declare function AgentUIProviderContainer({ appearance, rootElement, logger, language, languageCode, stringSet, children, messageTemplate, icons, theme, }: Props): JSX.Element;
292
+ export declare function AgentUIProviderContainer({ appearance, rootElement, logger, language, languageCode, stringSet, children, messageTemplate, icons, theme, entryElement, modalRootElement, }: Props): JSX.Element;
294
293
 
295
294
  declare abstract class AIAgentBaseStats {
296
295
  protected timers: Map<string, TimerData> = new Map();
@@ -385,6 +384,16 @@ declare interface AIAgentCache {
385
384
  messenger: MessengerSessionCache;
386
385
  }
387
386
 
387
+ declare type AIAgentChatSDK = ChatSDKSendbirdChatWith<[ChatSDKGroupChannelModule, ChatSDKAIAgentModule]>;
388
+
389
+ declare type AIAgentChatSDK_2 = ChatSDKSendbirdChatWith<[ChatSDKGroupChannelModule, ChatSDKAIAgentModule]>;
390
+
391
+ declare type AIAgentChatSDKParams = ChatSDKSendbirdChatParams<[ChatSDKGroupChannelModule, ChatSDKAIAgentModule]>;
392
+
393
+ declare interface AIAgentClientHandlers {
394
+ onCustomEvent?: (event: CustomEvent_2) => void;
395
+ }
396
+
388
397
  declare type AIAgentCommonIconName =
389
398
  | 'close'
390
399
  | 'send'
@@ -413,7 +422,8 @@ declare type AIAgentCommonIconName =
413
422
  | 'delight'
414
423
  | 'photo'
415
424
  | 'add'
416
- | 'document';
425
+ | 'document'
426
+ | 'download';
417
427
 
418
428
  export declare interface AIAgentConfig {
419
429
  conversation?: {
@@ -470,7 +480,7 @@ export declare interface AIAgentConfig {
470
480
  * */
471
481
  messageAlertSoundEnabled?: boolean;
472
482
  /**
473
- * (React only) File viewer configuration.
483
+ * File viewer configuration.
474
484
  * */
475
485
  fileViewer?: {
476
486
  /**
@@ -488,7 +498,7 @@ declare interface AIAgentContextValue {
488
498
 
489
499
  /** @internal Do not use directly. This is an internal SDK instance. */
490
500
  _aiAgentSDK: AIAgentInterface;
491
- chatSDK: SendbirdChatWith<[GroupChannelModule, AIAgentModule]>;
501
+ chatSDK: AIAgentChatSDK_2;
492
502
  deskClient: DeskClientInterface;
493
503
 
494
504
  language: string;
@@ -503,32 +513,34 @@ declare interface AIAgentContextValue {
503
513
 
504
514
  queryParams?: AIAgentQueryParams;
505
515
  config?: AIAgentConfig;
516
+
517
+ handlers?: AIAgentClientHandlers;
506
518
  }
507
519
 
508
520
  declare interface AIAgentConversationContextValue {
509
- conversation: Conversation_2 | undefined;
521
+ conversation: ChatSDKConversation | undefined;
510
522
 
511
523
  channelSource: {
512
- channel: GroupChannel | undefined;
513
- error: SendbirdError | undefined;
524
+ channel: ChatSDKGroupChannel | undefined;
525
+ error: ChatSDKSendbirdError | undefined;
514
526
  refetch: () => Promise<void>;
515
527
  closeConversation: () => Promise<void>;
516
528
  };
517
529
 
518
530
  messageSource: {
519
- messages: BaseMessage[];
520
- newMessages: BaseMessage[];
531
+ messages: ChatSDKBaseMessage[];
532
+ newMessages: ChatSDKBaseMessage[];
521
533
  initialized: boolean;
522
534
  subscribeMessageEvents: (listener: (event: ConversationMessageEvent) => void) => () => void;
523
535
  loadPrevious: () => Promise<void>;
524
536
  loadNext: () => Promise<void>;
525
- sendUserMessage: (params: UserMessageCreateParams) => Promise<UserMessage>;
526
- sendFileMessage: (params: FileMessageCreateParams) => Promise<FileMessage>;
527
- sendMultipleFilesMessage: (params: MultipleFilesMessageCreateParams) => Promise<MultipleFilesMessage>;
528
- deleteMessage: (message: UserMessage | FileMessage | MultipleFilesMessage) => Promise<void>;
537
+ sendUserMessage: (params: ChatSDKUserMessageCreateParams) => Promise<ChatSDKUserMessage>;
538
+ sendFileMessage: (params: ChatSDKFileMessageCreateParams) => Promise<ChatSDKFileMessage>;
539
+ sendMultipleFilesMessage: (params: ChatSDKMultipleFilesMessageCreateParams) => Promise<ChatSDKMultipleFilesMessage>;
540
+ deleteMessage: (message: ChatSDKUserMessage | ChatSDKFileMessage | ChatSDKMultipleFilesMessage) => Promise<void>;
529
541
  resendMessage: (
530
- message: UserMessage | FileMessage | MultipleFilesMessage,
531
- ) => Promise<UserMessage | FileMessage | MultipleFilesMessage>;
542
+ message: ChatSDKUserMessage | ChatSDKFileMessage | ChatSDKMultipleFilesMessage,
543
+ ) => Promise<ChatSDKUserMessage | ChatSDKFileMessage | ChatSDKMultipleFilesMessage>;
532
544
  resetNewMessages: () => void;
533
545
  };
534
546
 
@@ -545,8 +557,8 @@ declare interface AIAgentConversationContextValue {
545
557
  declare interface AIAgentConversationListContextValue {
546
558
  listSource: {
547
559
  initialized: boolean;
548
- error: SendbirdError | undefined;
549
- channels: GroupChannel[];
560
+ error: ChatSDKSendbirdError | undefined;
561
+ channels: ChatSDKGroupChannel[];
550
562
  loadMore: () => Promise<void>;
551
563
  };
552
564
  }
@@ -556,12 +568,12 @@ declare interface AIAgentGroupChannelFilter {
556
568
  * The filter applied to AI agent channels.
557
569
  * It determines whether to include or exclude AI agent channels in the query results.
558
570
  */
559
- aiAgentChannelFilter?: AIAgentChannelFilter;
571
+ aiAgentChannelFilter?: ChatSDKAIAgentChannelFilter;
560
572
  /**
561
573
  * The filter applied to AI agent conversation statuses.
562
574
  * It allows filtering channels based on the status of their conversations.
563
575
  */
564
- aiAgentConversationStatusFilter?: ConversationStatus[];
576
+ aiAgentConversationStatusFilter?: ChatSDKConversationStatus[];
565
577
  /**
566
578
  * The list of AI agent IDs to filter the channels.
567
579
  * Only channels associated with these AI agents will be included in the results.
@@ -571,7 +583,7 @@ declare interface AIAgentGroupChannelFilter {
571
583
  * The filter applied to Desk channels.
572
584
  * It determines whether to include or exclude Desk channels in the query results.
573
585
  */
574
- deskChannelFilter?: DeskChannelFilter;
586
+ deskChannelFilter?: ChatSDKDeskChannelFilter;
575
587
  /**
576
588
  * The list of pinned channel URLs.
577
589
  * These channels are prioritized in the query results.
@@ -685,7 +697,7 @@ declare interface AIAgentInterface {
685
697
  refreshActiveChannel: (options?: { useKnownActiveChannelUrl?: boolean }) => Promise<string>;
686
698
 
687
699
  /** @internal Initializes a conversation on the channel if needed (AI Agent channel without conversation). */
688
- initConversationIfNeeded: (channel: GroupChannel) => Promise<void>;
700
+ initConversationIfNeeded: (channel: ChatSDKGroupChannel) => Promise<void>;
689
701
 
690
702
  /** Disposes all resources held by this instance (WebSocket, desk auth, event handlers). */
691
703
  dispose: () => void;
@@ -711,7 +723,7 @@ declare interface AIAgentLanguageSet {
711
723
  declare interface AIAgentMessengerSessionContextValue {
712
724
  userSessionInfo?: UserSessionInfo | ManualSessionInfo | AnonymousSessionInfo;
713
725
 
714
- sdkUser: null | User;
726
+ sdkUser: null | ChatSDKUser;
715
727
  userSession: null | UserSession;
716
728
  aiAgentInfo: null | AIAgentInfo;
717
729
  launcherInfo: null | LauncherInfo;
@@ -728,7 +740,7 @@ declare interface AIAgentMessengerSessionContextValue {
728
740
  authenticate: () => Promise<MessengerSettingsResponse>;
729
741
  deauthenticate: () => Promise<void>;
730
742
 
731
- createAttachmentRules: (params: { channel?: GroupChannel; uploadSizeLimit?: number }) => AttachmentRules;
743
+ createAttachmentRules: (params: { channel?: ChatSDKGroupChannel; uploadSizeLimit?: number }) => AttachmentRules;
732
744
  /**
733
745
  * @internal
734
746
  */
@@ -774,12 +786,12 @@ export declare type AIAgentProps = PropsWithChildren<{
774
786
  * @public
775
787
  * @description Inject a custom Chat SDK. GroupChannelModule and AIAgentModule must be included in the initialization.
776
788
  * */
777
- customChatSDK?: SendbirdChatWith<[GroupChannelModule, AIAgentModule]>;
789
+ customChatSDK?: AIAgentChatSDK;
778
790
  /**
779
791
  * @public
780
792
  * @description Custom parameters for initializing the chat SDK.
781
793
  * */
782
- chatParams?: Partial<SendbirdChatParams<[GroupChannelModule, AIAgentModule]>>;
794
+ chatParams?: Partial<AIAgentChatSDKParams>;
783
795
  /**
784
796
  * @public
785
797
  * @description Custom state management for the ai agent client.
@@ -837,7 +849,7 @@ export declare type AIAgentProps = PropsWithChildren<{
837
849
  * @public
838
850
  * @description logLevel for the ai agent client.
839
851
  * */
840
- logLevel?: LogLevel_2;
852
+ logLevel?: ChatSDKLogLevel;
841
853
  /**
842
854
  * @public
843
855
  * @description Language for the ai agent client. Should follow the IETF BCP 47 format.
@@ -921,7 +933,7 @@ export declare interface AIAgentQueryParams {
921
933
  * @description Represents an authenticated session state. Created after successful authentication.
922
934
  */
923
935
  declare class AIAgentSession {
924
- private readonly _sdkUser: User;
936
+ private readonly _sdkUser: ChatSDKUser;
925
937
  private readonly _userSession: UserSession;
926
938
  private readonly _dispatcher: Dispatcher;
927
939
  private _activeChannel: ActiveChannel;
@@ -936,7 +948,7 @@ declare class AIAgentSession {
936
948
  /**
937
949
  * The authenticated Sendbird user.
938
950
  */
939
- get sdkUser(): User {
951
+ get sdkUser(): ChatSDKUser {
940
952
  return this._sdkUser;
941
953
  }
942
954
 
@@ -982,12 +994,12 @@ declare class AIAgentSession {
982
994
  /**
983
995
  * AI Agent session handler.
984
996
  * */
985
- declare interface AIAgentSessionHandler extends SessionHandler {
997
+ declare interface AIAgentSessionHandler extends ChatSDKSessionHandler {
986
998
  onExternalAuthTokenExpired?: (data: ExternalAuthTokenExpiredData) => void;
987
999
  }
988
1000
 
989
1001
  declare interface AIAgentSessionParams {
990
- sdkUser: User;
1002
+ sdkUser: ChatSDKUser;
991
1003
  userSession: UserSession;
992
1004
  activeChannel: ActiveChannel;
993
1005
  dispatcher: Dispatcher;
@@ -1020,7 +1032,7 @@ declare interface AIAgentStringSet {
1020
1032
  powered_by: string;
1021
1033
  citation_title: string;
1022
1034
  start_new_conversation_label: string;
1023
- scroll_to_new_messages_label: (messages: BaseMessage[]) => string;
1035
+ scroll_to_new_messages_label: (messages: ChatSDKBaseMessage[]) => string;
1024
1036
 
1025
1037
  failed_message_resend: string;
1026
1038
  failed_message_remove: string;
@@ -1080,6 +1092,14 @@ declare interface AIAgentStringSet {
1080
1092
  a11y_hint_open_file: string;
1081
1093
  a11y_hint_open_image: string;
1082
1094
  a11y_hint_send_reply: string;
1095
+
1096
+ image_viewer_default_title: string;
1097
+ a11y_image_viewer_close: string;
1098
+ a11y_image_viewer_previous: string;
1099
+ a11y_image_viewer_next: string;
1100
+ a11y_image_viewer_download: string;
1101
+
1102
+ attachment_document: string;
1083
1103
  };
1084
1104
 
1085
1105
  conversation_list: {
@@ -1147,6 +1167,11 @@ declare interface AIAgentStringSet {
1147
1167
  confirm_cancel: string;
1148
1168
  confirm_handoff: string;
1149
1169
  };
1170
+
1171
+ connection_delay: {
1172
+ title: string;
1173
+ description: (formattedTime: string) => string;
1174
+ };
1150
1175
  }
1151
1176
 
1152
1177
  declare type AnonUserSessionData = { userId: string; authToken: string; expireAt: number };
@@ -1204,7 +1229,63 @@ declare type BaseMessageProps<T> = T & {
1204
1229
  children?: ReactNode;
1205
1230
  };
1206
1231
 
1207
- declare type ChatSDKType = SendbirdChatWith<[GroupChannelModule, AIAgentModule]>;
1232
+ declare type ChatSDKAIAgentChannelFilter = AIAgentChannelFilter;
1233
+
1234
+ declare type ChatSDKAIAgentGroupChannelListQuery = AIAgentGroupChannelListQuery;
1235
+
1236
+ declare type ChatSDKAIAgentModule = AIAgentModule;
1237
+
1238
+ declare type ChatSDKBaseChannel = BaseChannel;
1239
+
1240
+ declare type ChatSDKBaseMessage = BaseMessage;
1241
+
1242
+ declare type ChatSDKCollectionEventSource = CollectionEventSource;
1243
+
1244
+ declare type ChatSDKConnectionHandler = ConnectionHandler;
1245
+
1246
+ declare type ChatSDKConversation = Conversation_2;
1247
+
1248
+ declare type ChatSDKConversationStatus = ConversationStatus;
1249
+
1250
+ declare type ChatSDKDeskChannelFilter = DeskChannelFilter;
1251
+
1252
+ declare type ChatSDKFileMessage = FileMessage;
1253
+
1254
+ declare type ChatSDKFileMessageCreateParams = FileMessageCreateParams;
1255
+
1256
+ declare type ChatSDKGroupChannel = GroupChannel;
1257
+
1258
+ declare type ChatSDKGroupChannelChangelogs = GroupChannelChangelogs;
1259
+
1260
+ declare type ChatSDKGroupChannelHandler = GroupChannelHandler;
1261
+
1262
+ declare type ChatSDKGroupChannelListOrder = GroupChannelListOrder;
1263
+
1264
+ declare type ChatSDKGroupChannelModule = GroupChannelModule;
1265
+
1266
+ declare type ChatSDKLogLevel = LogLevel_2;
1267
+
1268
+ declare type ChatSDKModule = ChatSDKGroupChannelModule | ChatSDKAIAgentModule;
1269
+
1270
+ declare type ChatSDKMultipleFilesMessage = MultipleFilesMessage;
1271
+
1272
+ declare type ChatSDKMultipleFilesMessageCreateParams = MultipleFilesMessageCreateParams;
1273
+
1274
+ declare type ChatSDKSendbirdChatParams<Modules extends ChatSDKModule[]> = SendbirdChatParams<Modules>;
1275
+
1276
+ declare type ChatSDKSendbirdChatWith<Modules extends ChatSDKModule[]> = SendbirdChatWith<Modules>;
1277
+
1278
+ declare type ChatSDKSendbirdError = SendbirdError;
1279
+
1280
+ declare type ChatSDKSessionHandler = SessionHandler;
1281
+
1282
+ declare type ChatSDKType = ChatSDKSendbirdChatWith<[ChatSDKGroupChannelModule, ChatSDKAIAgentModule]>;
1283
+
1284
+ declare type ChatSDKUser = User;
1285
+
1286
+ declare type ChatSDKUserMessage = UserMessage;
1287
+
1288
+ declare type ChatSDKUserMessageCreateParams = UserMessageCreateParams;
1208
1289
 
1209
1290
  export declare interface CitationInfo {
1210
1291
  embedding_id: number;
@@ -1291,6 +1372,36 @@ declare enum CommandType {
1291
1372
  AuthTokenRefreshed = 'auth.token.refreshed',
1292
1373
  }
1293
1374
 
1375
+ export declare interface ConnectionDelayDialogProps {
1376
+ title: string;
1377
+ description: string;
1378
+ highlightedText?: string;
1379
+ }
1380
+
1381
+ export declare const ConnectionDelayLayout: {
1382
+ (props: PropsWithChildren): ReactNode;
1383
+ defaults: {
1384
+ template: ComponentType<unknown>;
1385
+ components: {
1386
+ Dialog: ({ title, description, highlightedText }: ConnectionDelayDialogProps) => ReactNode;
1387
+ };
1388
+ };
1389
+ Template: ({ template, children }: {
1390
+ template?: ComponentType<unknown> | undefined;
1391
+ children?: ReactNode;
1392
+ }) => JSX.Element;
1393
+ Context: Context<LayoutContextValue<unknown, {
1394
+ Dialog: ({ title, description, highlightedText }: ConnectionDelayDialogProps) => ReactNode;
1395
+ }>>;
1396
+ useContext: () => LayoutContextValue<unknown, {
1397
+ Dialog: ({ title, description, highlightedText }: ConnectionDelayDialogProps) => ReactNode;
1398
+ }>;
1399
+ } & {
1400
+ Dialog: (props: {
1401
+ component: ({ title, description, highlightedText }: ConnectionDelayDialogProps) => ReactNode;
1402
+ }) => null;
1403
+ };
1404
+
1294
1405
  declare interface ContextObject {
1295
1406
  language?: string;
1296
1407
  country?: string;
@@ -1594,24 +1705,24 @@ declare class ConversationListCollection {
1594
1705
  readonly filter?: AIAgentGroupChannelFilter;
1595
1706
 
1596
1707
  private _sdk: ChatSDKType;
1597
- private _pinnedChannels: GroupChannel[];
1598
- private _channels: GroupChannel[];
1708
+ private _pinnedChannels: ChatSDKGroupChannel[];
1709
+ private _channels: ChatSDKGroupChannel[];
1599
1710
 
1600
1711
  private _isDisposed = false;
1601
1712
  private _handlerId = `handler-id-${Date.now()}`;
1602
- private _order: GroupChannelListOrder = GroupChannelListOrder.LATEST_LAST_MESSAGE;
1713
+ private _order: ChatSDKGroupChannelListOrder = GroupChannelListOrder.LATEST_LAST_MESSAGE;
1603
1714
 
1604
1715
  private _limit: number;
1605
- private _query: AIAgentGroupChannelListQuery;
1716
+ private _query: ChatSDKAIAgentGroupChannelListQuery;
1606
1717
 
1607
1718
  private _token: string;
1608
1719
  private _timestamp: number;
1609
1720
  private _isSyncing: boolean;
1610
1721
 
1611
- private _channelHandler: GroupChannelHandler;
1612
- private _connectionHandler: ConnectionHandler;
1722
+ private _channelHandler: ChatSDKGroupChannelHandler;
1723
+ private _connectionHandler: ChatSDKConnectionHandler;
1613
1724
  private _collectionEventHandler?: ConversationListCollectionEventHandler;
1614
- private _throttledOnChannelChanged: ThrottledFunction<(channel: BaseChannel) => void>;
1725
+ private _throttledOnChannelChanged: ThrottledFunction<(channel: ChatSDKBaseChannel) => void>;
1615
1726
 
1616
1727
  /**
1617
1728
  * Creates a new ConversationListCollection instance.
@@ -1642,7 +1753,7 @@ declare class ConversationListCollection {
1642
1753
  this._isSyncing = false;
1643
1754
 
1644
1755
  this._throttledOnChannelChanged = throttle(
1645
- (channel: GroupChannel) => {
1756
+ (channel: ChatSDKGroupChannel) => {
1646
1757
  if (this._query.belongsTo(channel)) {
1647
1758
  this._addChannelsToView([channel], false);
1648
1759
  } else {
@@ -1684,7 +1795,7 @@ declare class ConversationListCollection {
1684
1795
  * Sets the default changelog sync timestamp based on the first non-pinned channel.
1685
1796
  * @param channels - Array of channels to analyze
1686
1797
  */
1687
- private _setDefaultChangelogsSyncTimestamp(channels: GroupChannel[]) {
1798
+ private _setDefaultChangelogsSyncTimestamp(channels: ChatSDKGroupChannel[]) {
1688
1799
  const pinnedUrlsSet = new Set(this.filter?.pinnedChannelUrls ?? []);
1689
1800
  const firstChannel = channels.find((it) => {
1690
1801
  return !pinnedUrlsSet.has(it.url);
@@ -1706,13 +1817,13 @@ declare class ConversationListCollection {
1706
1817
  * Synchronizes channel changelogs to keep the collection up-to-date.
1707
1818
  * @returns Promise that resolves to an empty array
1708
1819
  */
1709
- private async _syncChannelChangelogs(): Promise<GroupChannel[]> {
1820
+ private async _syncChannelChangelogs(): Promise<ChatSDKGroupChannel[]> {
1710
1821
  if (this._isDisposed) return [];
1711
1822
  if (this._isSyncing) return [];
1712
1823
 
1713
1824
  try {
1714
1825
  this._isSyncing = true;
1715
- let response: GroupChannelChangelogs;
1826
+ let response: ChatSDKGroupChannelChangelogs;
1716
1827
 
1717
1828
  if (this._token) {
1718
1829
  response = await this._sdk.aiAgent.getMyGroupChannelChangeLogsByToken(this._token, this.filter);
@@ -1743,16 +1854,16 @@ declare class ConversationListCollection {
1743
1854
  * @param channels - Pinned channels to upsert
1744
1855
  * @returns Object containing added, updated channels and unmatched URLs
1745
1856
  */
1746
- private _upsertPinnedChannelsToArray(channels: GroupChannel[]): {
1747
- addedChannels: GroupChannel[];
1748
- updatedChannels: GroupChannel[];
1857
+ private _upsertPinnedChannelsToArray(channels: ChatSDKGroupChannel[]): {
1858
+ addedChannels: ChatSDKGroupChannel[];
1859
+ updatedChannels: ChatSDKGroupChannel[];
1749
1860
  unmatchedChannelUrls: string[];
1750
1861
  } {
1751
1862
  const pinnedUrls = this.filter?.pinnedChannelUrls ?? [];
1752
1863
  const pinnedIndexMap = new Map(pinnedUrls.map((url, index) => [url, index]));
1753
1864
 
1754
- const addedChannels: GroupChannel[] = [];
1755
- const updatedChannels: GroupChannel[] = [];
1865
+ const addedChannels: ChatSDKGroupChannel[] = [];
1866
+ const updatedChannels: ChatSDKGroupChannel[] = [];
1756
1867
  const unmatchedChannelUrls: string[] = [];
1757
1868
 
1758
1869
  for (const channel of channels) {
@@ -1793,13 +1904,13 @@ declare class ConversationListCollection {
1793
1904
  * @returns Object containing added, updated channels and unmatched URLs
1794
1905
  */
1795
1906
  private _upsertRegularChannelsToArray(
1796
- channels: GroupChannel[],
1907
+ channels: ChatSDKGroupChannel[],
1797
1908
  forceAppend = false,
1798
- ): { addedChannels: GroupChannel[]; updatedChannels: GroupChannel[]; unmatchedChannelUrls: string[] } {
1909
+ ): { addedChannels: ChatSDKGroupChannel[]; updatedChannels: ChatSDKGroupChannel[]; unmatchedChannelUrls: string[] } {
1799
1910
  const unmatchedChannelUrls: string[] = [];
1800
1911
 
1801
- const addedChannels: GroupChannel[] = [];
1802
- const updatedChannels: GroupChannel[] = [];
1912
+ const addedChannels: ChatSDKGroupChannel[] = [];
1913
+ const updatedChannels: ChatSDKGroupChannel[] = [];
1803
1914
 
1804
1915
  for (const channel of channels) {
1805
1916
  if (!this._query.belongsTo(channel)) {
@@ -1842,11 +1953,11 @@ declare class ConversationListCollection {
1842
1953
  * @param channels - Channels to add or update
1843
1954
  * @param forceAppend - Whether to force append channels at the end
1844
1955
  */
1845
- private _addChannelsToView(channels: GroupChannel[], forceAppend = false): void {
1956
+ private _addChannelsToView(channels: ChatSDKGroupChannel[], forceAppend = false): void {
1846
1957
  const pinnedUrlsSet = new Set(this.filter?.pinnedChannelUrls ?? []);
1847
1958
 
1848
- const pinnedChannels: GroupChannel[] = [];
1849
- const regularChannels: GroupChannel[] = [];
1959
+ const pinnedChannels: ChatSDKGroupChannel[] = [];
1960
+ const regularChannels: ChatSDKGroupChannel[] = [];
1850
1961
 
1851
1962
  for (const channel of channels) {
1852
1963
  if (pinnedUrlsSet.has(channel.url)) {
@@ -1900,7 +2011,7 @@ declare class ConversationListCollection {
1900
2011
  * Pinned channels are always returned first, followed by non-pinned channels.
1901
2012
  * @returns Array of GroupChannel objects
1902
2013
  */
1903
- public get channels(): GroupChannel[] {
2014
+ public get channels(): ChatSDKGroupChannel[] {
1904
2015
  return this._isDisposed ? [] : [...this._pinnedChannels, ...this._channels];
1905
2016
  }
1906
2017
 
@@ -1916,7 +2027,7 @@ declare class ConversationListCollection {
1916
2027
  * Loads the next batch of channels from the server.
1917
2028
  * @returns Promise that resolves to an array of newly loaded channels
1918
2029
  */
1919
- public async loadMore(): Promise<GroupChannel[]> {
2030
+ public async loadMore(): Promise<ChatSDKGroupChannel[]> {
1920
2031
  if (this._isDisposed) return [];
1921
2032
 
1922
2033
  if (this.hasMore) {
@@ -1957,9 +2068,9 @@ declare class ConversationListCollection {
1957
2068
 
1958
2069
  declare interface ConversationListCollectionEventHandler {
1959
2070
  /** Called when there are newly added {@link GroupChannel}s. */
1960
- onChannelsAdded?: (context: ConversationListContext_2, channels: GroupChannel[]) => void;
2071
+ onChannelsAdded?: (context: ConversationListContext_2, channels: ChatSDKGroupChannel[]) => void;
1961
2072
  /** Called when there's an update in one or more of the {@link GroupChannel}s that `GroupChannelCollection` holds. */
1962
- onChannelsUpdated?: (context: ConversationListContext_2, channels: GroupChannel[]) => void;
2073
+ onChannelsUpdated?: (context: ConversationListContext_2, channels: ChatSDKGroupChannel[]) => void;
1963
2074
  /** Called when one or more of the {@link GroupChannel}s that `GroupChannelCollection` holds has been deleted. */
1964
2075
  onChannelsDeleted?: (context: ConversationListContext_2, channelUrls: string[]) => void;
1965
2076
  }
@@ -2057,7 +2168,7 @@ export declare const ConversationListItemLayout: {
2057
2168
  } & {};
2058
2169
 
2059
2170
  export declare interface ConversationListItemProps {
2060
- channel: GroupChannel;
2171
+ channel: ChatSDKGroupChannel;
2061
2172
  channelUrl: string;
2062
2173
  onClick?: () => void;
2063
2174
  /** @deprecated **/
@@ -2107,18 +2218,18 @@ declare type ConversationMessageEvent = ConversationMessageEventPayload & { id:
2107
2218
  declare type ConversationMessageEventPayload =
2108
2219
  | {
2109
2220
  kind: 'messagesAdded';
2110
- source: CollectionEventSource;
2111
- messages: BaseMessage[];
2221
+ source: ChatSDKCollectionEventSource;
2222
+ messages: ChatSDKBaseMessage[];
2112
2223
  }
2113
2224
  | {
2114
2225
  kind: 'messagesUpdated';
2115
- source: CollectionEventSource;
2116
- messages: BaseMessage[];
2226
+ source: ChatSDKCollectionEventSource;
2227
+ messages: ChatSDKBaseMessage[];
2117
2228
  }
2118
2229
  | {
2119
2230
  kind: 'initialized';
2120
2231
  source: 'cache' | 'api';
2121
- messages: BaseMessage[];
2232
+ messages: ChatSDKBaseMessage[];
2122
2233
  };
2123
2234
 
2124
2235
  declare interface ConversationScrollContextValue {
@@ -2189,17 +2300,20 @@ export declare enum CSATType {
2189
2300
  HELPDESK_CSAT_5 = 'HELPDESK_CSAT_5',
2190
2301
  }
2191
2302
 
2192
- declare type CustomEvent_2 = {
2303
+ declare type CustomEvent_2 =
2304
+ | {
2193
2305
  type: 'message-sent-pending' | 'message-sent-succeeded';
2194
2306
  data: {
2195
- message: BaseMessage;
2307
+ message: ChatSDKBaseMessage;
2196
2308
  };
2197
- } | {
2309
+ }
2310
+ | {
2198
2311
  type: 'bot-message-received';
2199
2312
  data: {
2200
- message: BaseMessage;
2313
+ message: ChatSDKBaseMessage;
2201
2314
  };
2202
- } | {
2315
+ }
2316
+ | {
2203
2317
  type: 'user-action-requested';
2204
2318
  data: UserActionRequestedData;
2205
2319
  };
@@ -3576,22 +3690,13 @@ declare type IncomingMessageUnion =
3576
3690
 
3577
3691
  declare function IncomingTextBody(props: IncomingMessageBodyProps): JSX.Element | null;
3578
3692
 
3579
- declare type InputMode = 'enabled' | 'readOnly' | 'disabled';
3580
-
3581
- declare type InputState = {
3582
- _mode: InputMode;
3583
- disabled: boolean;
3584
- disabledBy:
3585
- | 'unavailable'
3586
- | 'form_active'
3587
- | 'ai_responding'
3588
- | 'conversation_closed'
3589
- | 'suggested_replies'
3590
- | 'steward'
3591
- | 'system'
3592
- | 'reconnecting'
3593
- | 'handoff_pending'
3594
- | (string & {});
3693
+ declare type InputState =
3694
+ | { disabled: false; disabledBy: ''; focusPolicy: 'auto' }
3695
+ | { disabled: true; disabledBy: 'ai_responding'; focusPolicy: 'preserve' }
3696
+ | {
3697
+ disabled: true;
3698
+ disabledBy: ReleaseDisabledByValue;
3699
+ focusPolicy: 'release';
3595
3700
  };
3596
3701
 
3597
3702
  declare type InternalExtraProps = {
@@ -3613,7 +3718,7 @@ declare interface LanguageSet extends Omit<AIAgentLanguageSet, 'strings'> {
3613
3718
  stringSet: StringSet;
3614
3719
  }
3615
3720
 
3616
- export declare function LauncherBase({ className, children, isOpened, onClick, ariaLabel, 'aria-label': ariaLabelProp, 'aria-describedby': ariaDescribedBy, type, imageUrl, dir, animated, backgroundColor, size, }: LauncherProps): JSX.Element;
3721
+ export declare function LauncherBase({ className, children, isOpened, onClick, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedBy, type, imageUrl, dir, animated, backgroundColor, size, }: LauncherProps): JSX.Element;
3617
3722
 
3618
3723
  declare type LauncherImageType = 'default_icon' | 'custom_image';
3619
3724
 
@@ -3627,8 +3732,7 @@ declare type LauncherProps = {
3627
3732
  children?: ReactNode;
3628
3733
  isOpened: boolean;
3629
3734
  onClick?: () => void;
3630
- ariaLabel?: string;
3631
- 'aria-label'?: string;
3735
+ 'aria-label': string;
3632
3736
  'aria-describedby'?: string;
3633
3737
  type: LauncherImageType;
3634
3738
  imageUrl: string;
@@ -3947,7 +4051,7 @@ declare type NumberField = {
3947
4051
  };
3948
4052
 
3949
4053
  declare type OnJoinedProactiveConversation = (params: {
3950
- channel: GroupChannel;
4054
+ channel: ChatSDKGroupChannel;
3951
4055
  }) => void;
3952
4056
 
3953
4057
  declare type OutgoingBaseMessageProps<T> = T &
@@ -4203,6 +4307,10 @@ declare type Props = {
4203
4307
  }>;
4204
4308
  colors?: ColorSetInput;
4205
4309
  };
4310
+ /** @internal */
4311
+ entryElement?: HTMLElement;
4312
+ /** @internal */
4313
+ modalRootElement?: HTMLElement;
4206
4314
  /** @internal DO NOT USE THIS **/
4207
4315
  messageTemplate?: {
4208
4316
  /** @internal DO NOT USE THIS **/
@@ -4255,14 +4363,24 @@ declare type Props_4 = PropsWithChildren<{
4255
4363
  style?: CSSProperties;
4256
4364
  }>;
4257
4365
 
4258
- declare type ReactOnlyIconName = 'expand' | 'collapse' | 'chevron-right' | 'download' | 'attach' | 'close-filled' | 'actionbook' | 'function' | 'confluence' | 'zendesk' | 'salesforce' | 'sprinklr' | 'website' | 'snippet' | 'template' | 'show' | 'mute';
4366
+ declare type ReactOnlyIconName = 'expand' | 'collapse' | 'chevron-right' | 'attach' | 'close-filled' | 'actionbook' | 'function' | 'confluence' | 'zendesk' | 'salesforce' | 'sprinklr' | 'website' | 'snippet' | 'template' | 'show' | 'mute';
4367
+
4368
+ declare type ReleaseDisabledByValue =
4369
+ | 'unavailable'
4370
+ | 'form_active'
4371
+ | 'conversation_closed'
4372
+ | 'suggested_replies'
4373
+ | 'steward'
4374
+ | 'system'
4375
+ | 'reconnecting'
4376
+ | 'handoff_pending';
4259
4377
 
4260
4378
  declare type SBUFoundationProps<T = NonNullable<unknown>> = T & {
4261
4379
  className?: string;
4262
4380
  children?: ReactNode;
4263
4381
  testId?: string;
4264
4382
  style?: CSSProperties;
4265
- ariaLabel?: string;
4383
+ 'aria-label'?: string;
4266
4384
  };
4267
4385
 
4268
4386
  export declare type ScrollToBottomButtonProps = SBUFoundationProps<{
@@ -4475,11 +4593,13 @@ declare type StringSet = {
4475
4593
  A11Y_HINT_OPEN_IMAGE: string;
4476
4594
  A11Y_HINT_SEND_REPLY: string;
4477
4595
  A11Y_HINT_SELECT_RATING: string;
4478
- SCROLL_TO_NEW_MESSAGES_LABEL: (messages: BaseMessage[]) => string;
4596
+ SCROLL_TO_NEW_MESSAGES_LABEL: (messages: ChatSDKBaseMessage[]) => string;
4479
4597
  HANDOFF_CONFIRM__TITLE: string;
4480
4598
  HANDOFF_CONFIRM__DESCRIPTION: string;
4481
4599
  HANDOFF_CONFIRM__CANCEL: string;
4482
4600
  HANDOFF_CONFIRM__HANDOFF: string;
4601
+ CONNECTION_DELAY__TITLE: string;
4602
+ CONNECTION_DELAY__DESCRIPTION: (formattedTime: string) => string;
4483
4603
  /** @deprecated Please use DATE_FORMAT__DATE_SHORT instead. **/
4484
4604
  DATE_FORMAT__CONVERSATION_LIST__LIST_ITEM_TITLE: string;
4485
4605
  /** @deprecated Unused string **/
@@ -4639,7 +4759,15 @@ export declare interface UserActionRequestedData {
4639
4759
  }[];
4640
4760
  }
4641
4761
 
4642
- export declare type UserActionStatus = 'action_requested' | 'action_started' | 'action_submitted' | 'action_processing' | 'action_succeeded' | 'action_failed' | 'action_canceled' | (string & {});
4762
+ export declare type UserActionStatus =
4763
+ | 'action_requested'
4764
+ | 'action_started'
4765
+ | 'action_submitted'
4766
+ | 'action_processing'
4767
+ | 'action_succeeded'
4768
+ | 'action_failed'
4769
+ | 'action_canceled'
4770
+ | (string & {});
4643
4771
 
4644
4772
  export declare const useRefreshActiveChannel: (updater: () => Promise<void>) => () => Promise<void>;
4645
4773