@realtimexsco/live-chat 1.4.11 → 1.4.12

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.mts CHANGED
@@ -95,8 +95,8 @@ interface IAttachment {
95
95
  * Named API targets for selective query-param injection.
96
96
  * Consumers pick which endpoints receive `queryParams`.
97
97
  */
98
- declare const CHAT_GET_API_KEYS: readonly ["users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext"];
99
- declare const CHAT_API_KEYS: readonly ["all", "get", "login", "users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "createGroup", "updateGroupPermissions", "updateGroupInfo", "manageMembers", "manageAdmins", "blockUnblock", "presignedUrls"];
98
+ declare const CHAT_GET_API_KEYS: readonly ["users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "effectiveSettings"];
99
+ declare const CHAT_API_KEYS: readonly ["all", "get", "login", "users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "effectiveSettings", "createGroup", "updateGroupPermissions", "updateGroupInfo", "manageMembers", "manageAdmins", "blockUnblock", "presignedUrls"];
100
100
  type ChatApiKey = (typeof CHAT_API_KEYS)[number];
101
101
  type ChatGetApiKey = (typeof CHAT_GET_API_KEYS)[number];
102
102
  type ChatQueryParamValue = string | number | boolean;
@@ -105,12 +105,12 @@ type ChatQueryParamsByApi = Partial<Record<Exclude<ChatApiKey, "all" | "get">, C
105
105
  /** Match an axios request URL to a named API key (first match wins). */
106
106
  declare function resolveChatApiKey(url?: string): Exclude<ChatApiKey, "all" | "get"> | null;
107
107
 
108
- type ChatApiVersionKey = "default" | "push";
108
+ type ChatApiVersionKey = "v1" | "v2";
109
109
  interface ChatApiVersionConfig {
110
- /** Main chat REST API version (usually parsed from `setChatBaseURL`). */
111
- default?: string;
112
- /** Push notification API version. Default: `v2`. */
113
- push?: string;
110
+ /** Primary chat REST API version path segment. Default: `v1`. */
111
+ v1?: string;
112
+ /** Secondary API version path segment (e.g. push). Default: `v2`. */
113
+ v2?: string;
114
114
  }
115
115
  /**
116
116
  * Strip a trailing `/v1`, `/v2`, … from the configured base URL.
@@ -120,10 +120,12 @@ declare const resolveApiRoot: (baseUrl?: string) => string;
120
120
  declare const buildVersionedApiUrl: (path: string, options?: {
121
121
  version?: string;
122
122
  baseUrl?: string;
123
+ /** Which configured version slot to use. Default: `v1`. */
123
124
  service?: ChatApiVersionKey;
124
125
  }) => string;
125
126
  declare const setChatApiVersions: (config?: ChatApiVersionConfig | null) => void;
126
127
  declare const getChatApiVersions: () => Readonly<Record<ChatApiVersionKey, string>>;
128
+ /** Sets the secondary (`v2`) API version slot. */
127
129
  declare const setChatPushApiVersion: (version: string) => void;
128
130
 
129
131
  declare const setChatClientId: (id: string) => void;
@@ -142,7 +144,7 @@ declare const getChatQueryParams: () => {
142
144
  * Use `['all']` for every method, or specific keys like `['conversations']`.
143
145
  */
144
146
  declare const setChatQueryParamApis: (apis?: ChatApiKey[] | null) => void;
145
- declare const getChatQueryParamApis: () => ("all" | "get" | "login" | "users" | "conversations" | "conversationInfo" | "messages" | "pinnedMessages" | "starredMessages" | "searchMessages" | "searchMessagesContext" | "createGroup" | "updateGroupPermissions" | "updateGroupInfo" | "manageMembers" | "manageAdmins" | "blockUnblock" | "presignedUrls")[];
147
+ declare const getChatQueryParamApis: () => ("all" | "get" | "login" | "users" | "conversations" | "conversationInfo" | "messages" | "pinnedMessages" | "starredMessages" | "searchMessages" | "searchMessagesContext" | "effectiveSettings" | "createGroup" | "updateGroupPermissions" | "updateGroupInfo" | "manageMembers" | "manageAdmins" | "blockUnblock" | "presignedUrls")[];
146
148
  /** Per-API query params (override / extend shared params for that endpoint). */
147
149
  declare const setChatQueryParamsByApi: (byApi?: ChatQueryParamsByApi | null) => void;
148
150
  declare const getChatQueryParamsByApi: () => {
@@ -155,6 +157,7 @@ declare const getChatQueryParamsByApi: () => {
155
157
  starredMessages?: Record<string, string> | undefined;
156
158
  searchMessages?: Record<string, string> | undefined;
157
159
  searchMessagesContext?: Record<string, string> | undefined;
160
+ effectiveSettings?: Record<string, string> | undefined;
158
161
  createGroup?: Record<string, string> | undefined;
159
162
  updateGroupPermissions?: Record<string, string> | undefined;
160
163
  updateGroupInfo?: Record<string, string> | undefined;
@@ -164,38 +167,6 @@ declare const getChatQueryParamsByApi: () => {
164
167
  presignedUrls?: Record<string, string> | undefined;
165
168
  };
166
169
 
167
- interface PushNotificationToggleRenderProps {
168
- label: string;
169
- description: string;
170
- checked: boolean;
171
- disabled: boolean;
172
- loading: boolean;
173
- permissionBlocked: boolean;
174
- error: string | null;
175
- onCheckedChange: (checked: boolean) => void;
176
- }
177
- interface PushNotificationToggleProps {
178
- className?: string;
179
- label?: string;
180
- description?: string;
181
- /** Build your own row UI while keeping package push logic. */
182
- children?: (props: PushNotificationToggleRenderProps) => ReactNode;
183
- }
184
- /**
185
- * Drop-in per-user push notification switch. Renders nothing while push is
186
- * unsupported by the browser, disabled by the workspace admins, or not yet
187
- * configured on the backend — users only ever see a switch they can use.
188
- *
189
- * On: prompts for browser permission and registers this device.
190
- * Off: unregisters this device.
191
- */
192
- declare const PushNotificationToggle: ({ className, label, description, children, }: PushNotificationToggleProps) => React.JSX.Element | null;
193
-
194
- interface ChatForwardItem {
195
- message: IMessage;
196
- attachmentId?: string;
197
- }
198
-
199
170
  interface IUser {
200
171
  _id: string;
201
172
  id?: string;
@@ -210,25 +181,6 @@ interface IUser {
210
181
  isOnline?: boolean;
211
182
  }
212
183
 
213
- interface ChatLayoutConfig {
214
- /** Sidebar with profile + conversation list */
215
- sidebar?: boolean;
216
- /** Logged-in user profile block at top of sidebar */
217
- loggedUserDetails?: boolean;
218
- /** Conversation list in sidebar */
219
- channelList?: boolean;
220
- /** Active channel header (name, actions, search) */
221
- header?: boolean;
222
- /** Scrollable message area */
223
- messageList?: boolean;
224
- /** Message composer / input box */
225
- input?: boolean;
226
- /** Forward message modal */
227
- forwardModal?: boolean;
228
- }
229
- declare const defaultChatLayoutConfig: Required<ChatLayoutConfig>;
230
- declare const mergeChatLayoutConfig: (config?: ChatLayoutConfig) => Required<ChatLayoutConfig>;
231
-
232
184
  type SocketStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
233
185
  interface AuthState {
234
186
  loggedUserDetails: IUser | null;
@@ -501,6 +453,98 @@ interface SocketState {
501
453
  interface AppStoreState extends SocketState, AuthState {
502
454
  }
503
455
 
456
+ interface EffectiveCallsSettings {
457
+ enabled: boolean;
458
+ configured: boolean;
459
+ }
460
+ interface EffectiveGroupPolicy {
461
+ defaults: GroupPermissions;
462
+ locked: Array<keyof GroupPermissions | string>;
463
+ }
464
+ interface EffectiveMessageTimers {
465
+ dmEditMinutes: number;
466
+ dmDeleteMinutes: number;
467
+ groupEditMinutes: number;
468
+ groupDeleteMinutes: number;
469
+ }
470
+ interface EffectiveAttachmentsSettings {
471
+ enabled: boolean;
472
+ maxFileSizeMB: number;
473
+ allowedMimeTypes: string[];
474
+ maxAttachmentsPerMessage: number;
475
+ }
476
+ interface EffectiveSettings {
477
+ pushNotificationEnabled: boolean;
478
+ videoCallEnabled: boolean;
479
+ audioCallEnabled: boolean;
480
+ blockUsersEnabled: boolean;
481
+ calls: EffectiveCallsSettings;
482
+ groupPolicy: EffectiveGroupPolicy;
483
+ messageTimers: EffectiveMessageTimers;
484
+ attachments: EffectiveAttachmentsSettings;
485
+ maxAdminsPerGroup: number;
486
+ maxParticipantsPerGroup: number;
487
+ maxPinnedMessagesPerConversation: number;
488
+ groupCreationEnabled: boolean;
489
+ }
490
+ declare const DEFAULT_EFFECTIVE_SETTINGS: EffectiveSettings;
491
+ declare const ADMIN_PERMISSION_DENIED_MESSAGE = "This feature is disabled by your administrator.";
492
+ declare const CALLS_NOT_CONFIGURED_MESSAGE = "Calls are not configured. Please contact your administrator.";
493
+
494
+ declare const fetchEffectiveSettings: () => Promise<EffectiveSettings>;
495
+
496
+ interface PushNotificationToggleRenderProps {
497
+ label: string;
498
+ description: string;
499
+ checked: boolean;
500
+ disabled: boolean;
501
+ loading: boolean;
502
+ permissionBlocked: boolean;
503
+ error: string | null;
504
+ onCheckedChange: (checked: boolean) => void;
505
+ }
506
+ interface PushNotificationToggleProps {
507
+ className?: string;
508
+ label?: string;
509
+ description?: string;
510
+ /** Build your own row UI while keeping package push logic. */
511
+ children?: (props: PushNotificationToggleRenderProps) => ReactNode;
512
+ }
513
+ /**
514
+ * Drop-in per-user push notification switch.
515
+ *
516
+ * Always visible when the browser supports push. If workspace admins disable
517
+ * push via effective settings, the switch stays visible but disabled with a tooltip.
518
+ *
519
+ * On: prompts for browser permission and registers this device.
520
+ * Off: unregisters this device.
521
+ */
522
+ declare const PushNotificationToggle: ({ className, label, description, children, }: PushNotificationToggleProps) => React.JSX.Element | null;
523
+
524
+ interface ChatForwardItem {
525
+ message: IMessage;
526
+ attachmentId?: string;
527
+ }
528
+
529
+ interface ChatLayoutConfig {
530
+ /** Sidebar with profile + conversation list */
531
+ sidebar?: boolean;
532
+ /** Logged-in user profile block at top of sidebar */
533
+ loggedUserDetails?: boolean;
534
+ /** Conversation list in sidebar */
535
+ channelList?: boolean;
536
+ /** Active channel header (name, actions, search) */
537
+ header?: boolean;
538
+ /** Scrollable message area */
539
+ messageList?: boolean;
540
+ /** Message composer / input box */
541
+ input?: boolean;
542
+ /** Forward message modal */
543
+ forwardModal?: boolean;
544
+ }
545
+ declare const defaultChatLayoutConfig: Required<ChatLayoutConfig>;
546
+ declare const mergeChatLayoutConfig: (config?: ChatLayoutConfig) => Required<ChatLayoutConfig>;
547
+
504
548
  /** Context passed to phone / video call handlers */
505
549
  interface ChatCallContext {
506
550
  activeChannel: IChannel;
@@ -961,9 +1005,9 @@ interface ChatProps {
961
1005
  /** Different query params per API key */
962
1006
  queryParamsByApi?: ChatQueryParamsByApi;
963
1007
  /**
964
- * Per-service API versions after `/api`.
965
- * Example: `{ default: 'v1', push: 'v2' }`.
966
- * `default` is also parsed from `apiUrl` when it ends with `/v1`, `/v2`, etc.
1008
+ * API versions after `/api`.
1009
+ * Example: `{ v1: 'v1', v2: 'v2' }`.
1010
+ * `v1` is also parsed from `apiUrl` when it ends with `/v1`, `/v2`, etc.
967
1011
  */
968
1012
  apiVersions?: ChatApiVersionConfig;
969
1013
  channelsData?: IChannel[];
@@ -1057,7 +1101,7 @@ interface ChatMainProps {
1057
1101
  * pinnedMessages, starredMessages, searchMessages, searchMessagesContext
1058
1102
  */
1059
1103
  queryParamsByApi?: ChatQueryParamsByApi;
1060
- /** Per-service API versions after `/api` — e.g. `{ default: 'v1', push: 'v2' }`. */
1104
+ /** API versions after `/api` — e.g. `{ v1: 'v1', v2: 'v2' }`. */
1061
1105
  apiVersions?: ChatApiVersionConfig;
1062
1106
  themeColor?: string;
1063
1107
  theme?: string;
@@ -1637,8 +1681,8 @@ declare function ChatAlertsProvider({ children, value, }: {
1637
1681
  declare function useChatAlerts(): ChatAlertsContextValue;
1638
1682
 
1639
1683
  declare const buttonVariants: (props?: ({
1640
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
1641
- size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
1684
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
1685
+ size?: "sm" | "default" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
1642
1686
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1643
1687
  declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
1644
1688
  asChild?: boolean;
@@ -1775,4 +1819,33 @@ interface NotificationClickBridgeOptions {
1775
1819
  declare const consumePendingOpenFromPushCache: () => Promise<PushOpenRequest | null>;
1776
1820
  declare const installNotificationClickBridge: (options?: NotificationClickBridgeOptions) => (() => void);
1777
1821
 
1778
- export { type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, usePushNotifications };
1822
+ interface CallFeatureGate {
1823
+ /** Feature should remain visible. */
1824
+ visible: boolean;
1825
+ /** Interaction allowed. */
1826
+ enabled: boolean;
1827
+ /** Hover / tooltip reason when disabled. */
1828
+ disabledReason: string | null;
1829
+ }
1830
+ interface ChatEffectiveSettingsContextValue {
1831
+ settings: EffectiveSettings;
1832
+ loading: boolean;
1833
+ error: string | null;
1834
+ refresh: () => Promise<void>;
1835
+ isGroupPermissionLocked: (key: keyof GroupPermissions) => boolean;
1836
+ getAudioCallGate: () => CallFeatureGate;
1837
+ getVideoCallGate: () => CallFeatureGate;
1838
+ getPushNotificationGate: () => CallFeatureGate;
1839
+ getBlockUsersGate: () => CallFeatureGate;
1840
+ getAttachmentsGate: () => CallFeatureGate;
1841
+ getGroupCreationGate: () => CallFeatureGate;
1842
+ }
1843
+ declare function ChatEffectiveSettingsProvider({ children, enabled, }: {
1844
+ children: React__default.ReactNode;
1845
+ /** Fetch only after chat session credentials are ready. */
1846
+ enabled?: boolean;
1847
+ }): React__default.JSX.Element;
1848
+ declare function useEffectiveSettings(): ChatEffectiveSettingsContextValue;
1849
+ declare function useEffectiveSettingsOptional(): ChatEffectiveSettingsContextValue;
1850
+
1851
+ export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };
package/dist/index.d.ts CHANGED
@@ -95,8 +95,8 @@ interface IAttachment {
95
95
  * Named API targets for selective query-param injection.
96
96
  * Consumers pick which endpoints receive `queryParams`.
97
97
  */
98
- declare const CHAT_GET_API_KEYS: readonly ["users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext"];
99
- declare const CHAT_API_KEYS: readonly ["all", "get", "login", "users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "createGroup", "updateGroupPermissions", "updateGroupInfo", "manageMembers", "manageAdmins", "blockUnblock", "presignedUrls"];
98
+ declare const CHAT_GET_API_KEYS: readonly ["users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "effectiveSettings"];
99
+ declare const CHAT_API_KEYS: readonly ["all", "get", "login", "users", "conversations", "conversationInfo", "messages", "pinnedMessages", "starredMessages", "searchMessages", "searchMessagesContext", "effectiveSettings", "createGroup", "updateGroupPermissions", "updateGroupInfo", "manageMembers", "manageAdmins", "blockUnblock", "presignedUrls"];
100
100
  type ChatApiKey = (typeof CHAT_API_KEYS)[number];
101
101
  type ChatGetApiKey = (typeof CHAT_GET_API_KEYS)[number];
102
102
  type ChatQueryParamValue = string | number | boolean;
@@ -105,12 +105,12 @@ type ChatQueryParamsByApi = Partial<Record<Exclude<ChatApiKey, "all" | "get">, C
105
105
  /** Match an axios request URL to a named API key (first match wins). */
106
106
  declare function resolveChatApiKey(url?: string): Exclude<ChatApiKey, "all" | "get"> | null;
107
107
 
108
- type ChatApiVersionKey = "default" | "push";
108
+ type ChatApiVersionKey = "v1" | "v2";
109
109
  interface ChatApiVersionConfig {
110
- /** Main chat REST API version (usually parsed from `setChatBaseURL`). */
111
- default?: string;
112
- /** Push notification API version. Default: `v2`. */
113
- push?: string;
110
+ /** Primary chat REST API version path segment. Default: `v1`. */
111
+ v1?: string;
112
+ /** Secondary API version path segment (e.g. push). Default: `v2`. */
113
+ v2?: string;
114
114
  }
115
115
  /**
116
116
  * Strip a trailing `/v1`, `/v2`, … from the configured base URL.
@@ -120,10 +120,12 @@ declare const resolveApiRoot: (baseUrl?: string) => string;
120
120
  declare const buildVersionedApiUrl: (path: string, options?: {
121
121
  version?: string;
122
122
  baseUrl?: string;
123
+ /** Which configured version slot to use. Default: `v1`. */
123
124
  service?: ChatApiVersionKey;
124
125
  }) => string;
125
126
  declare const setChatApiVersions: (config?: ChatApiVersionConfig | null) => void;
126
127
  declare const getChatApiVersions: () => Readonly<Record<ChatApiVersionKey, string>>;
128
+ /** Sets the secondary (`v2`) API version slot. */
127
129
  declare const setChatPushApiVersion: (version: string) => void;
128
130
 
129
131
  declare const setChatClientId: (id: string) => void;
@@ -142,7 +144,7 @@ declare const getChatQueryParams: () => {
142
144
  * Use `['all']` for every method, or specific keys like `['conversations']`.
143
145
  */
144
146
  declare const setChatQueryParamApis: (apis?: ChatApiKey[] | null) => void;
145
- declare const getChatQueryParamApis: () => ("all" | "get" | "login" | "users" | "conversations" | "conversationInfo" | "messages" | "pinnedMessages" | "starredMessages" | "searchMessages" | "searchMessagesContext" | "createGroup" | "updateGroupPermissions" | "updateGroupInfo" | "manageMembers" | "manageAdmins" | "blockUnblock" | "presignedUrls")[];
147
+ declare const getChatQueryParamApis: () => ("all" | "get" | "login" | "users" | "conversations" | "conversationInfo" | "messages" | "pinnedMessages" | "starredMessages" | "searchMessages" | "searchMessagesContext" | "effectiveSettings" | "createGroup" | "updateGroupPermissions" | "updateGroupInfo" | "manageMembers" | "manageAdmins" | "blockUnblock" | "presignedUrls")[];
146
148
  /** Per-API query params (override / extend shared params for that endpoint). */
147
149
  declare const setChatQueryParamsByApi: (byApi?: ChatQueryParamsByApi | null) => void;
148
150
  declare const getChatQueryParamsByApi: () => {
@@ -155,6 +157,7 @@ declare const getChatQueryParamsByApi: () => {
155
157
  starredMessages?: Record<string, string> | undefined;
156
158
  searchMessages?: Record<string, string> | undefined;
157
159
  searchMessagesContext?: Record<string, string> | undefined;
160
+ effectiveSettings?: Record<string, string> | undefined;
158
161
  createGroup?: Record<string, string> | undefined;
159
162
  updateGroupPermissions?: Record<string, string> | undefined;
160
163
  updateGroupInfo?: Record<string, string> | undefined;
@@ -164,38 +167,6 @@ declare const getChatQueryParamsByApi: () => {
164
167
  presignedUrls?: Record<string, string> | undefined;
165
168
  };
166
169
 
167
- interface PushNotificationToggleRenderProps {
168
- label: string;
169
- description: string;
170
- checked: boolean;
171
- disabled: boolean;
172
- loading: boolean;
173
- permissionBlocked: boolean;
174
- error: string | null;
175
- onCheckedChange: (checked: boolean) => void;
176
- }
177
- interface PushNotificationToggleProps {
178
- className?: string;
179
- label?: string;
180
- description?: string;
181
- /** Build your own row UI while keeping package push logic. */
182
- children?: (props: PushNotificationToggleRenderProps) => ReactNode;
183
- }
184
- /**
185
- * Drop-in per-user push notification switch. Renders nothing while push is
186
- * unsupported by the browser, disabled by the workspace admins, or not yet
187
- * configured on the backend — users only ever see a switch they can use.
188
- *
189
- * On: prompts for browser permission and registers this device.
190
- * Off: unregisters this device.
191
- */
192
- declare const PushNotificationToggle: ({ className, label, description, children, }: PushNotificationToggleProps) => React.JSX.Element | null;
193
-
194
- interface ChatForwardItem {
195
- message: IMessage;
196
- attachmentId?: string;
197
- }
198
-
199
170
  interface IUser {
200
171
  _id: string;
201
172
  id?: string;
@@ -210,25 +181,6 @@ interface IUser {
210
181
  isOnline?: boolean;
211
182
  }
212
183
 
213
- interface ChatLayoutConfig {
214
- /** Sidebar with profile + conversation list */
215
- sidebar?: boolean;
216
- /** Logged-in user profile block at top of sidebar */
217
- loggedUserDetails?: boolean;
218
- /** Conversation list in sidebar */
219
- channelList?: boolean;
220
- /** Active channel header (name, actions, search) */
221
- header?: boolean;
222
- /** Scrollable message area */
223
- messageList?: boolean;
224
- /** Message composer / input box */
225
- input?: boolean;
226
- /** Forward message modal */
227
- forwardModal?: boolean;
228
- }
229
- declare const defaultChatLayoutConfig: Required<ChatLayoutConfig>;
230
- declare const mergeChatLayoutConfig: (config?: ChatLayoutConfig) => Required<ChatLayoutConfig>;
231
-
232
184
  type SocketStatus = "idle" | "connecting" | "connected" | "disconnected" | "error";
233
185
  interface AuthState {
234
186
  loggedUserDetails: IUser | null;
@@ -501,6 +453,98 @@ interface SocketState {
501
453
  interface AppStoreState extends SocketState, AuthState {
502
454
  }
503
455
 
456
+ interface EffectiveCallsSettings {
457
+ enabled: boolean;
458
+ configured: boolean;
459
+ }
460
+ interface EffectiveGroupPolicy {
461
+ defaults: GroupPermissions;
462
+ locked: Array<keyof GroupPermissions | string>;
463
+ }
464
+ interface EffectiveMessageTimers {
465
+ dmEditMinutes: number;
466
+ dmDeleteMinutes: number;
467
+ groupEditMinutes: number;
468
+ groupDeleteMinutes: number;
469
+ }
470
+ interface EffectiveAttachmentsSettings {
471
+ enabled: boolean;
472
+ maxFileSizeMB: number;
473
+ allowedMimeTypes: string[];
474
+ maxAttachmentsPerMessage: number;
475
+ }
476
+ interface EffectiveSettings {
477
+ pushNotificationEnabled: boolean;
478
+ videoCallEnabled: boolean;
479
+ audioCallEnabled: boolean;
480
+ blockUsersEnabled: boolean;
481
+ calls: EffectiveCallsSettings;
482
+ groupPolicy: EffectiveGroupPolicy;
483
+ messageTimers: EffectiveMessageTimers;
484
+ attachments: EffectiveAttachmentsSettings;
485
+ maxAdminsPerGroup: number;
486
+ maxParticipantsPerGroup: number;
487
+ maxPinnedMessagesPerConversation: number;
488
+ groupCreationEnabled: boolean;
489
+ }
490
+ declare const DEFAULT_EFFECTIVE_SETTINGS: EffectiveSettings;
491
+ declare const ADMIN_PERMISSION_DENIED_MESSAGE = "This feature is disabled by your administrator.";
492
+ declare const CALLS_NOT_CONFIGURED_MESSAGE = "Calls are not configured. Please contact your administrator.";
493
+
494
+ declare const fetchEffectiveSettings: () => Promise<EffectiveSettings>;
495
+
496
+ interface PushNotificationToggleRenderProps {
497
+ label: string;
498
+ description: string;
499
+ checked: boolean;
500
+ disabled: boolean;
501
+ loading: boolean;
502
+ permissionBlocked: boolean;
503
+ error: string | null;
504
+ onCheckedChange: (checked: boolean) => void;
505
+ }
506
+ interface PushNotificationToggleProps {
507
+ className?: string;
508
+ label?: string;
509
+ description?: string;
510
+ /** Build your own row UI while keeping package push logic. */
511
+ children?: (props: PushNotificationToggleRenderProps) => ReactNode;
512
+ }
513
+ /**
514
+ * Drop-in per-user push notification switch.
515
+ *
516
+ * Always visible when the browser supports push. If workspace admins disable
517
+ * push via effective settings, the switch stays visible but disabled with a tooltip.
518
+ *
519
+ * On: prompts for browser permission and registers this device.
520
+ * Off: unregisters this device.
521
+ */
522
+ declare const PushNotificationToggle: ({ className, label, description, children, }: PushNotificationToggleProps) => React.JSX.Element | null;
523
+
524
+ interface ChatForwardItem {
525
+ message: IMessage;
526
+ attachmentId?: string;
527
+ }
528
+
529
+ interface ChatLayoutConfig {
530
+ /** Sidebar with profile + conversation list */
531
+ sidebar?: boolean;
532
+ /** Logged-in user profile block at top of sidebar */
533
+ loggedUserDetails?: boolean;
534
+ /** Conversation list in sidebar */
535
+ channelList?: boolean;
536
+ /** Active channel header (name, actions, search) */
537
+ header?: boolean;
538
+ /** Scrollable message area */
539
+ messageList?: boolean;
540
+ /** Message composer / input box */
541
+ input?: boolean;
542
+ /** Forward message modal */
543
+ forwardModal?: boolean;
544
+ }
545
+ declare const defaultChatLayoutConfig: Required<ChatLayoutConfig>;
546
+ declare const mergeChatLayoutConfig: (config?: ChatLayoutConfig) => Required<ChatLayoutConfig>;
547
+
504
548
  /** Context passed to phone / video call handlers */
505
549
  interface ChatCallContext {
506
550
  activeChannel: IChannel;
@@ -961,9 +1005,9 @@ interface ChatProps {
961
1005
  /** Different query params per API key */
962
1006
  queryParamsByApi?: ChatQueryParamsByApi;
963
1007
  /**
964
- * Per-service API versions after `/api`.
965
- * Example: `{ default: 'v1', push: 'v2' }`.
966
- * `default` is also parsed from `apiUrl` when it ends with `/v1`, `/v2`, etc.
1008
+ * API versions after `/api`.
1009
+ * Example: `{ v1: 'v1', v2: 'v2' }`.
1010
+ * `v1` is also parsed from `apiUrl` when it ends with `/v1`, `/v2`, etc.
967
1011
  */
968
1012
  apiVersions?: ChatApiVersionConfig;
969
1013
  channelsData?: IChannel[];
@@ -1057,7 +1101,7 @@ interface ChatMainProps {
1057
1101
  * pinnedMessages, starredMessages, searchMessages, searchMessagesContext
1058
1102
  */
1059
1103
  queryParamsByApi?: ChatQueryParamsByApi;
1060
- /** Per-service API versions after `/api` — e.g. `{ default: 'v1', push: 'v2' }`. */
1104
+ /** API versions after `/api` — e.g. `{ v1: 'v1', v2: 'v2' }`. */
1061
1105
  apiVersions?: ChatApiVersionConfig;
1062
1106
  themeColor?: string;
1063
1107
  theme?: string;
@@ -1637,8 +1681,8 @@ declare function ChatAlertsProvider({ children, value, }: {
1637
1681
  declare function useChatAlerts(): ChatAlertsContextValue;
1638
1682
 
1639
1683
  declare const buttonVariants: (props?: ({
1640
- variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
1641
- size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
1684
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
1685
+ size?: "sm" | "default" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
1642
1686
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1643
1687
  declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
1644
1688
  asChild?: boolean;
@@ -1775,4 +1819,33 @@ interface NotificationClickBridgeOptions {
1775
1819
  declare const consumePendingOpenFromPushCache: () => Promise<PushOpenRequest | null>;
1776
1820
  declare const installNotificationClickBridge: (options?: NotificationClickBridgeOptions) => (() => void);
1777
1821
 
1778
- export { type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, usePushNotifications };
1822
+ interface CallFeatureGate {
1823
+ /** Feature should remain visible. */
1824
+ visible: boolean;
1825
+ /** Interaction allowed. */
1826
+ enabled: boolean;
1827
+ /** Hover / tooltip reason when disabled. */
1828
+ disabledReason: string | null;
1829
+ }
1830
+ interface ChatEffectiveSettingsContextValue {
1831
+ settings: EffectiveSettings;
1832
+ loading: boolean;
1833
+ error: string | null;
1834
+ refresh: () => Promise<void>;
1835
+ isGroupPermissionLocked: (key: keyof GroupPermissions) => boolean;
1836
+ getAudioCallGate: () => CallFeatureGate;
1837
+ getVideoCallGate: () => CallFeatureGate;
1838
+ getPushNotificationGate: () => CallFeatureGate;
1839
+ getBlockUsersGate: () => CallFeatureGate;
1840
+ getAttachmentsGate: () => CallFeatureGate;
1841
+ getGroupCreationGate: () => CallFeatureGate;
1842
+ }
1843
+ declare function ChatEffectiveSettingsProvider({ children, enabled, }: {
1844
+ children: React__default.ReactNode;
1845
+ /** Fetch only after chat session credentials are ready. */
1846
+ enabled?: boolean;
1847
+ }): React__default.JSX.Element;
1848
+ declare function useEffectiveSettings(): ChatEffectiveSettingsContextValue;
1849
+ declare function useEffectiveSettingsOptional(): ChatEffectiveSettingsContextValue;
1850
+
1851
+ export { ADMIN_PERMISSION_DENIED_MESSAGE, type ActiveChannelMessagesSlotProps, type AdminsDrawerSlotProps, type AttachmentsDrawerSlotProps, type AvatarSlotProps, CALLS_NOT_CONFIGURED_MESSAGE, CHAT_API_KEYS, CHAT_GET_API_KEYS, Calendar, CalendarDayButton, Channel, type ChannelDetailsDrawerSlotProps, ChannelHeaderView as ChannelHeader, type ChannelHeaderSlotProps, ChannelListView as ChannelList, ChannelListItem, type ChannelListItemSlotProps, type ChannelListSlotProps, type ChannelMessageBoxSlotProps, Chat, type ChatActionModalSlotProps, ChatAlertsProvider, type ChatApiKey, type ChatApiVersionConfig, type ChatApiVersionKey, ChatAvatar, type ChatCallContext, type ChatClassNames, type ChatColorMode, type ChatComponents, type ChatCustomizationConfig, ChatCustomizationProvider, ChatDateJumpMenu, type ChatDateTimePreferences, ChatEffectiveSettingsProvider, type ChatFeatures, type ChatGetApiKey, ChatLayout, type ChatLayoutConfig, type ChatLayoutSlotProps, ChatLocaleProvider, ChatMain, type ChatPanelAlertsSlotProps, type ChatQueryParams, type ChatQueryParamsByApi, ChatThemeProvider, ChatViewport, type ChatViewportHeight, DEFAULT_EFFECTIVE_SETTINGS, DefaultChannelListItem, DefaultChatAvatar, DefaultChatLayout, type EffectiveAttachmentsSettings, type EffectiveCallsSettings, type EffectiveGroupPolicy, type EffectiveMessageTimers, type EffectiveSettings, ForegroundPushBridge, type ForegroundPushBridgeProps, type ForegroundPushPayload, ForwardModalView as ForwardModal, type ForwardModalSlotProps, HeaderCallActions, type HeaderCallActionsSlotProps, type HeaderLeftSideSlotProps, type HeaderRightSideSlotProps, type HeaderSearchOverlaySlotProps, type IAttachment, type IChannel, type IDMDelete, type IDMEditMessage, type IDMForward, type IDMMessage, type IDMPin, type IDMReaction, type IDMRead, type IDMStar, type IDMTyping, type IDMUnstar, type IMessage, type ISocketConfig, type JumpToPreset, LoggedUserDetails, type LoggedUserDetailsSlotProps, LoggedUserSettingsContent, type LoggedUserSettingsContentSlotProps, LoggedUserSettingsDialog, type LoggedUserSettingsDialogSlotProps, LoggedUserSettingsTrigger, type LoggedUserSettingsTriggerSlotProps, type MembersDrawerSlotProps, type MessageAttachmentsSlotProps, ChannelMessageBoxView as MessageInput, MessageItemView as MessageItem, type MessageItemSlotProps, ActiveChannelMessagesView as MessageList, type MessageReactionsSlotProps, type MessageReplySnippetSlotProps, type MessageStatusSlotProps, type MessageToolbarSlotProps, NOTIFICATION_CLICK_SW_TYPE, type NotificationClickBridgeOptions, OPEN_CONVERSATION_EVENT, PUSH_BROADCAST_CHANNEL, PUSH_CHANGED_EVENT, PUSH_DATA_CACHE_NAME, type PendingJump, type PermissionDrawerSlotProps, type PhoneCallButtonSlotProps, type PinnedMessagesDrawerSlotProps, type PushConfig, PushNotificationToggle, type PushNotificationToggleProps, type PushNotificationToggleRenderProps, type PushNotificationsState, type PushOpenRequest, type PushPreference, type StarredMessagesDrawerSlotProps, type UIConfig, type UsePushNotifications, type VideoCallButtonSlotProps, apiGetPushConfig, apiGetPushPreference, apiRegisterPushToken, apiRemovePushToken, apiUpdatePushPreference, buildChannelFromPushRequest, buildLoggedUserProfile, buildVersionedApiUrl, capitalizeFirst, clampJumpDate, consumePendingOpenConversation, consumePendingOpenFromPushCache, consumePendingOpenRequest, ChatMain as default, defaultChatClassNames, defaultChatComponents, defaultChatFeatures, defaultChatLayoutConfig, disablePushOnThisDevice, downloadFile, enablePushOnThisDevice, fetchEffectiveSettings, getChatApiVersions, getChatBaseUrl, getChatQueryParamApis, getChatQueryParams, getChatQueryParamsByApi, getChatSocketUrl, getFirstAndLastNameOneCharacter, getResponsiveWidth, getSocketConfig, getStoredPushToken, installNotificationClickBridge, isEmpty, isPushSupported, mergeChatCustomization, mergeChatLayoutConfig, onForegroundPush, packageDefaultComponents, peekPendingOpenConversation, peekPendingOpenRequest, requestOpenConversation, resolveApiRoot, resolveApiUrl, resolveChatApiKey, resolveConversationIdFromPushData, resolveJumpDateBounds, resolveJumpPreset, resolveJumpStep, resolveSocketUrl, setChatAccessToken, setChatApiVersions, setChatBaseURL, setChatClientId, setChatPushApiVersion, setChatQueryParamApis, setChatQueryParams, setChatQueryParamsByApi, setChatSocketUrl, showNotification, smoothScrollToMessage, socketService, startOfLocalDay, toDateInputValue, uniqueList, useChatAlerts, useChatContext, useChatController, useChatCustomization, useChatCustomizationOptional, useChatFeatures, useChatFeaturesOptional, useChatLocale, useStore as useChatStore, useChatTheme, useEffectiveSettings, useEffectiveSettingsOptional, usePushNotifications };