@liveblocks/react 3.13.0-metadata1 → 3.13.0-rc2

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.
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import { ComponentType, Context, PropsWithChildren, ReactNode } from 'react';
3
3
  import { BaseUserMeta, Client, JsonObject, LsonObject, LiveObject, User, Json, RoomSubscriptionSettings, Room, Status, BroadcastOptions, OthersEvent, LostConnectionEvent, History, BaseMetadata as BaseMetadata$1, ClientOptions, ThreadData as ThreadData$1, CommentData as CommentData$1 } from '@liveblocks/client';
4
4
  import * as _liveblocks_core from '@liveblocks/core';
5
- import { OpaqueClient, OpaqueRoom, AiKnowledgeSource, AiOpaqueToolDefinition, Relax, AiAssistantContentPart, BaseMetadata, QueryMetadata, AsyncResult, DRI, AsyncSuccess, DGI, GroupData, Resolve, CommentBody, CommentAttachment, PartialUnless, Patchable, InboxNotificationData, NotificationSettings, ToImmutable, MessageId, PartialNotificationSettings, AiChatsQuery, AsyncLoading, AsyncError, ThreadData, SearchCommentsResult, HistoryVersion, AiChat, UrlMetadata, Client as Client$1, LiveblocksError, SyncStatus, RoomEventMessage, CommentData, AiUserMessage, WithRequired, AiChatMessage, WithNavigation, MutableSignal, ThreadDataWithDeleteInfo, ThreadDeleteInfo, SubscriptionKey, SubscriptionData, DerivedSignal, DefaultMap, CommentUserReaction, InboxNotificationDeleteInfo, SubscriptionDeleteInfo, RoomSubscriptionSettings as RoomSubscriptionSettings$1, ISignal, Permission, BaseUserMeta as BaseUserMeta$1, DistributiveOmit, DU, DTM, DCM, TextEditorType, IYjsProvider, MentionData, DP, DS, DE } from '@liveblocks/core';
5
+ import { OpaqueClient, OpaqueRoom, AiKnowledgeSource, AiOpaqueToolDefinition, Relax, AiAssistantContentPart, BaseMetadata, QueryMetadata, AsyncResult, DRI, AsyncSuccess, DGI, GroupData, Resolve, CommentBody, CommentAttachment, PartialUnless, Patchable, InboxNotificationData, NotificationSettings, ToImmutable, MessageId, PartialNotificationSettings, AiChatsQuery, AsyncLoading, AsyncError, ThreadData, SearchCommentsResult, HistoryVersion, AiChat, UrlMetadata, Client as Client$1, LiveblocksError, SyncStatus, RoomEventMessage, CommentData, AiUserMessage, WithRequired, AiChatMessage, WithNavigation, MutableSignal, ThreadDataWithDeleteInfo, ThreadDeleteInfo, SubscriptionKey, SubscriptionData, DerivedSignal, DefaultMap, CommentUserReaction, InboxNotificationDeleteInfo, SubscriptionDeleteInfo, RoomSubscriptionSettings as RoomSubscriptionSettings$1, ISignal, Permission, BaseUserMeta as BaseUserMeta$1, DistributiveOmit, DU, DM, TextEditorType, IYjsProvider, MentionData, DP, DS, DE } from '@liveblocks/core';
6
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
7
 
8
8
  /**
@@ -125,7 +125,7 @@ type UseAiChatsOptions = {
125
125
  */
126
126
  query?: AiChatsQuery;
127
127
  };
128
- type ThreadsQuery<TM extends BaseMetadata> = {
128
+ type ThreadsQuery<M extends BaseMetadata> = {
129
129
  /**
130
130
  * Whether to only return threads marked as resolved or unresolved. If not provided,
131
131
  * all threads will be returned.
@@ -140,21 +140,21 @@ type ThreadsQuery<TM extends BaseMetadata> = {
140
140
  * The metadata to filter the threads by. If provided, only threads with metadata that matches
141
141
  * the provided metadata will be returned. If not provided, all threads will be returned.
142
142
  */
143
- metadata?: Partial<QueryMetadata<TM>>;
143
+ metadata?: Partial<QueryMetadata<M>>;
144
144
  };
145
- type UseUserThreadsOptions<TM extends BaseMetadata> = {
145
+ type UseUserThreadsOptions<M extends BaseMetadata> = {
146
146
  /**
147
147
  * The query (including metadata) to filter the threads by. If provided, only threads
148
148
  * that match the query will be returned. If not provided, all threads will be returned.
149
149
  */
150
- query?: ThreadsQuery<TM>;
150
+ query?: ThreadsQuery<M>;
151
151
  };
152
- type UseThreadsOptions<TM extends BaseMetadata> = {
152
+ type UseThreadsOptions<M extends BaseMetadata> = {
153
153
  /**
154
154
  * The query (including metadata) to filter the threads by. If provided, only threads
155
155
  * that match the query will be returned. If not provided, all threads will be returned.
156
156
  */
157
- query?: ThreadsQuery<TM>;
157
+ query?: ThreadsQuery<M>;
158
158
  /**
159
159
  * Whether to scroll to a comment on load based on the URL hash. Defaults to `true`.
160
160
  *
@@ -164,11 +164,11 @@ type UseThreadsOptions<TM extends BaseMetadata> = {
164
164
  */
165
165
  scrollOnLoad?: boolean;
166
166
  };
167
- type SearchCommentsQuery<TM extends BaseMetadata> = {
167
+ type SearchCommentsQuery<M extends BaseMetadata> = {
168
168
  /**
169
169
  * (Optional) Metadata to filter the threads by.
170
170
  */
171
- threadMetadata?: Partial<QueryMetadata<TM>>;
171
+ threadMetadata?: Partial<QueryMetadata<M>>;
172
172
  /**
173
173
  * (Optional) Whether to only return comments from threads marked as resolved or unresolved.
174
174
  */
@@ -186,8 +186,8 @@ type SearchCommentsQuery<TM extends BaseMetadata> = {
186
186
  */
187
187
  text: string;
188
188
  };
189
- type UseSearchCommentsOptions<TM extends BaseMetadata> = {
190
- query: SearchCommentsQuery<TM>;
189
+ type UseSearchCommentsOptions<M extends BaseMetadata> = {
190
+ query: SearchCommentsQuery<M>;
191
191
  };
192
192
  type InboxNotificationsQuery = {
193
193
  /**
@@ -215,35 +215,26 @@ type GroupInfoAsyncSuccess = AsyncSuccess<DGI, "info">;
215
215
  type AttachmentUrlAsyncResult = AsyncResult<string, "url">;
216
216
  type AttachmentUrlAsyncSuccess = AsyncSuccess<string, "url">;
217
217
  type GroupAsyncResult = AsyncResult<GroupData | undefined, "group">;
218
- type CreateThreadOptions<TM extends BaseMetadata, CM extends BaseMetadata> = Resolve<{
218
+ type CreateThreadOptions<M extends BaseMetadata> = Resolve<{
219
219
  body: CommentBody;
220
220
  attachments?: CommentAttachment[];
221
- } & PartialUnless<TM, {
222
- metadata: TM;
223
- }> & PartialUnless<CM, {
224
- commentMetadata: CM;
221
+ } & PartialUnless<M, {
222
+ metadata: M;
225
223
  }>>;
226
- type EditThreadMetadataOptions<TM extends BaseMetadata> = {
224
+ type EditThreadMetadataOptions<M extends BaseMetadata> = {
227
225
  threadId: string;
228
- metadata: Patchable<TM>;
226
+ metadata: Patchable<M>;
229
227
  };
230
- type CreateCommentOptions<CM extends BaseMetadata> = {
228
+ type CreateCommentOptions = {
231
229
  threadId: string;
232
230
  body: CommentBody;
233
- metadata?: CM;
234
231
  attachments?: CommentAttachment[];
235
232
  };
236
- type EditCommentOptions<CM extends BaseMetadata> = {
233
+ type EditCommentOptions = {
237
234
  threadId: string;
238
235
  commentId: string;
239
236
  body: CommentBody;
240
237
  attachments?: CommentAttachment[];
241
- metadata?: Patchable<CM>;
242
- };
243
- type EditCommentMetadataOptions<CM extends BaseMetadata> = {
244
- threadId: string;
245
- commentId: string;
246
- metadata: Patchable<CM>;
247
238
  };
248
239
  type DeleteCommentOptions = {
249
240
  threadId: string;
@@ -262,8 +253,8 @@ type PaginationFields = {
262
253
  };
263
254
  type PagedAsyncSuccess<T, F extends string> = Resolve<AsyncSuccess<T, F> & PaginationFields>;
264
255
  type PagedAsyncResult<T, F extends string> = Relax<AsyncLoading<F> | AsyncError<F> | PagedAsyncSuccess<T, F>>;
265
- type ThreadsAsyncSuccess<TM extends BaseMetadata, CM extends BaseMetadata> = PagedAsyncSuccess<ThreadData<TM, CM>[], "threads">;
266
- type ThreadsAsyncResult<TM extends BaseMetadata, CM extends BaseMetadata> = PagedAsyncResult<ThreadData<TM, CM>[], "threads">;
256
+ type ThreadsAsyncSuccess<M extends BaseMetadata> = PagedAsyncSuccess<ThreadData<M>[], "threads">;
257
+ type ThreadsAsyncResult<M extends BaseMetadata> = PagedAsyncResult<ThreadData<M>[], "threads">;
267
258
  type SearchCommentsAsyncResult = AsyncResult<Array<SearchCommentsResult>, "results">;
268
259
  type InboxNotificationsAsyncSuccess = PagedAsyncSuccess<InboxNotificationData[], "inboxNotifications">;
269
260
  type InboxNotificationsAsyncResult = PagedAsyncResult<InboxNotificationData[], "inboxNotifications">;
@@ -299,6 +290,12 @@ type RoomProviderProps<P extends JsonObject, S extends LsonObject> = Resolve<{
299
290
  * only on the client side.
300
291
  */
301
292
  autoConnect?: boolean;
293
+ /**
294
+ * @private Preferred storage engine version to use when creating the
295
+ * room. Only takes effect if the room doesn't exist yet. Version
296
+ * 2 supports streaming and will become the default in the future.
297
+ */
298
+ engine?: 1 | 2;
302
299
  } & PartialUnless<P, {
303
300
  /**
304
301
  * The initial Presence to use and announce when you enter the Room. The
@@ -496,13 +493,13 @@ type SharedContextBundle<U extends BaseUserMeta> = {
496
493
  /**
497
494
  * Properties that are the same in RoomContext and RoomContext["suspense"].
498
495
  */
499
- type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U extends BaseUserMeta, E extends Json, TM extends BaseMetadata, CM extends BaseMetadata> = {
496
+ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U extends BaseUserMeta, E extends Json, M extends BaseMetadata> = {
500
497
  /**
501
498
  * You normally don't need to directly interact with the RoomContext, but
502
499
  * it can be necessary if you're building an advanced app where you need to
503
500
  * set up a context bridge between two React renderers.
504
501
  */
505
- RoomContext: Context<Room<P, S, U, E, TM, CM> | null>;
502
+ RoomContext: Context<Room<P, S, U, E, M> | null>;
506
503
  /**
507
504
  * Makes a Room available in the component hierarchy below.
508
505
  * Joins the room when the component is mounted, and automatically leaves
@@ -515,10 +512,10 @@ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U exten
515
512
  */
516
513
  useRoom(options?: {
517
514
  allowOutsideRoom: false;
518
- }): Room<P, S, U, E, TM, CM>;
515
+ }): Room<P, S, U, E, M>;
519
516
  useRoom(options: {
520
517
  allowOutsideRoom: boolean;
521
- }): Room<P, S, U, E, TM, CM> | null;
518
+ }): Room<P, S, U, E, M> | null;
522
519
  /**
523
520
  * Returns the current connection status for the Room, and triggers
524
521
  * a re-render whenever it changes. Can be used to render a status badge.
@@ -789,7 +786,7 @@ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U exten
789
786
  * const createThread = useCreateThread();
790
787
  * createThread({ body: {}, metadata: {} });
791
788
  */
792
- useCreateThread(): (options: CreateThreadOptions<TM, CM>) => ThreadData<TM, CM>;
789
+ useCreateThread(): (options: CreateThreadOptions<M>) => ThreadData<M>;
793
790
  /**
794
791
  * Returns a function that deletes a thread and its associated comments.
795
792
  * Only the thread creator can delete a thread, it will throw otherwise.
@@ -807,7 +804,7 @@ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U exten
807
804
  * const editThreadMetadata = useEditThreadMetadata();
808
805
  * editThreadMetadata({ threadId: "th_xxx", metadata: {} })
809
806
  */
810
- useEditThreadMetadata(): (options: EditThreadMetadataOptions<TM>) => void;
807
+ useEditThreadMetadata(): (options: EditThreadMetadataOptions<M>) => void;
811
808
  /**
812
809
  * Returns a function that marks a thread as resolved.
813
810
  *
@@ -847,24 +844,15 @@ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U exten
847
844
  * const createComment = useCreateComment();
848
845
  * createComment({ threadId: "th_xxx", body: {} });
849
846
  */
850
- useCreateComment(): (options: CreateCommentOptions<CM>) => CommentData<CM>;
847
+ useCreateComment(): (options: CreateCommentOptions) => CommentData;
851
848
  /**
852
- * Returns a function that edits a comment.
849
+ * Returns a function that edits a comment's body.
853
850
  *
854
851
  * @example
855
852
  * const editComment = useEditComment()
856
853
  * editComment({ threadId: "th_xxx", commentId: "cm_xxx", body: {} })
857
854
  */
858
- useEditComment(): (options: EditCommentOptions<CM>) => void;
859
- /**
860
- * Returns a function that edits a comment's metadata.
861
- * To delete an existing metadata property, set its value to `null`.
862
- *
863
- * @example
864
- * const editCommentMetadata = useEditCommentMetadata();
865
- * editCommentMetadata({ threadId: "th_xxx", commentId: "cm_xxx", metadata: { slackChannelId: "C024BE91L", slackMessageTs: "1700311782.001200" } })
866
- */
867
- useEditCommentMetadata(): (options: EditCommentMetadataOptions<CM>) => void;
855
+ useEditComment(): (options: EditCommentOptions) => void;
868
856
  /**
869
857
  * Returns a function that deletes a comment.
870
858
  * If it is the last non-deleted comment, the thread also gets deleted.
@@ -916,7 +904,7 @@ type RoomContextBundleCommon<P extends JsonObject, S extends LsonObject, U exten
916
904
  */
917
905
  useThreadSubscription(threadId: string): ThreadSubscription;
918
906
  };
919
- type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends BaseUserMeta, E extends Json, TM extends BaseMetadata, CM extends BaseMetadata> = Resolve<RoomContextBundleCommon<P, S, U, E, TM, CM> & SharedContextBundle<U>["classic"] & {
907
+ type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends BaseUserMeta, E extends Json, M extends BaseMetadata> = Resolve<RoomContextBundleCommon<P, S, U, E, M> & SharedContextBundle<U>["classic"] & {
920
908
  /**
921
909
  * Extract arbitrary data from the Liveblocks Storage state, using an
922
910
  * arbitrary selector function.
@@ -977,14 +965,14 @@ type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends Bas
977
965
  * @example
978
966
  * const { threads, error, isLoading } = useThreads();
979
967
  */
980
- useThreads(options?: UseThreadsOptions<TM>): ThreadsAsyncResult<TM, CM>;
968
+ useThreads(options?: UseThreadsOptions<M>): ThreadsAsyncResult<M>;
981
969
  /**
982
970
  * Returns the result of searching comments by text in the current room. The result includes the id and the plain text content of the matched comments along with the parent thread id of the comment.
983
971
  *
984
972
  * @example
985
973
  * const { results, error, isLoading } = useSearchComments({ query: { text: "hello"} });
986
974
  */
987
- useSearchComments(options: UseSearchCommentsOptions<TM>): SearchCommentsAsyncResult;
975
+ useSearchComments(options: UseSearchCommentsOptions<M>): SearchCommentsAsyncResult;
988
976
  /**
989
977
  * Returns the user's subscription settings for the current room
990
978
  * and a function to update them.
@@ -1017,7 +1005,7 @@ type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends Bas
1017
1005
  * const { data, error, isLoading } = useHistoryVersionData(version.id);
1018
1006
  */
1019
1007
  useHistoryVersionData(id: string): HistoryVersionDataAsyncResult;
1020
- suspense: Resolve<RoomContextBundleCommon<P, S, U, E, TM, CM> & SharedContextBundle<U>["suspense"] & {
1008
+ suspense: Resolve<RoomContextBundleCommon<P, S, U, E, M> & SharedContextBundle<U>["suspense"] & {
1021
1009
  /**
1022
1010
  * Extract arbitrary data from the Liveblocks Storage state, using an
1023
1011
  * arbitrary selector function.
@@ -1072,7 +1060,7 @@ type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends Bas
1072
1060
  * @example
1073
1061
  * const { threads } = useThreads();
1074
1062
  */
1075
- useThreads(options?: UseThreadsOptions<TM>): ThreadsAsyncSuccess<TM, CM>;
1063
+ useThreads(options?: UseThreadsOptions<M>): ThreadsAsyncSuccess<M>;
1076
1064
  /**
1077
1065
  * (Private beta) Returns a history of versions of the current room.
1078
1066
  *
@@ -1103,7 +1091,7 @@ type RoomContextBundle<P extends JsonObject, S extends LsonObject, U extends Bas
1103
1091
  /**
1104
1092
  * Properties that are the same in LiveblocksContext and LiveblocksContext["suspense"].
1105
1093
  */
1106
- type LiveblocksContextBundleCommon<TM extends BaseMetadata, CM extends BaseMetadata> = {
1094
+ type LiveblocksContextBundleCommon<M extends BaseMetadata> = {
1107
1095
  /**
1108
1096
  * Makes Liveblocks features outside of rooms (e.g. Notifications) available
1109
1097
  * in the component hierarchy below.
@@ -1156,7 +1144,7 @@ type LiveblocksContextBundleCommon<TM extends BaseMetadata, CM extends BaseMetad
1156
1144
  * @example
1157
1145
  * const thread = useInboxNotificationThread("in_xxx");
1158
1146
  */
1159
- useInboxNotificationThread(inboxNotificationId: string): ThreadData<TM, CM>;
1147
+ useInboxNotificationThread(inboxNotificationId: string): ThreadData<M>;
1160
1148
  /**
1161
1149
  * Returns notification settings for the current user.
1162
1150
  *
@@ -1277,7 +1265,7 @@ type LiveblocksContextBundleCommon<TM extends BaseMetadata, CM extends BaseMetad
1277
1265
  (options: WithRequired<SendAiMessageOptions, "chatId">): AiUserMessage;
1278
1266
  };
1279
1267
  };
1280
- type LiveblocksContextBundle<U extends BaseUserMeta, TM extends BaseMetadata, CM extends BaseMetadata> = Resolve<LiveblocksContextBundleCommon<TM, CM> & SharedContextBundle<U>["classic"] & {
1268
+ type LiveblocksContextBundle<U extends BaseUserMeta, M extends BaseMetadata> = Resolve<LiveblocksContextBundleCommon<M> & SharedContextBundle<U>["classic"] & {
1281
1269
  /**
1282
1270
  * Returns the inbox notifications for the current user.
1283
1271
  *
@@ -1298,7 +1286,7 @@ type LiveblocksContextBundle<U extends BaseUserMeta, TM extends BaseMetadata, CM
1298
1286
  * This hook is experimental and could be removed or changed at any time!
1299
1287
  * Do not use unless explicitly recommended by the Liveblocks team.
1300
1288
  */
1301
- useUserThreads_experimental(options?: UseUserThreadsOptions<TM>): ThreadsAsyncResult<TM, CM>;
1289
+ useUserThreads_experimental(options?: UseUserThreadsOptions<M>): ThreadsAsyncResult<M>;
1302
1290
  /**
1303
1291
  * (Private beta) Returns the chats for the current user.
1304
1292
  *
@@ -1350,7 +1338,7 @@ type LiveblocksContextBundle<U extends BaseUserMeta, TM extends BaseMetadata, CM
1350
1338
  * const { metadata, error, isLoading } = useUrlMetadata("https://liveblocks.io");
1351
1339
  */
1352
1340
  useUrlMetadata(url: string): UrlMetadataAsyncResult;
1353
- suspense: Resolve<LiveblocksContextBundleCommon<TM, CM> & SharedContextBundle<U>["suspense"] & {
1341
+ suspense: Resolve<LiveblocksContextBundleCommon<M> & SharedContextBundle<U>["suspense"] & {
1354
1342
  /**
1355
1343
  * Returns the inbox notifications for the current user.
1356
1344
  *
@@ -1381,7 +1369,7 @@ type LiveblocksContextBundle<U extends BaseUserMeta, TM extends BaseMetadata, CM
1381
1369
  * This hook is experimental and could be removed or changed at any time!
1382
1370
  * Do not use unless explicitly recommended by the Liveblocks team.
1383
1371
  */
1384
- useUserThreads_experimental(options?: UseUserThreadsOptions<TM>): ThreadsAsyncSuccess<TM, CM>;
1372
+ useUserThreads_experimental(options?: UseUserThreadsOptions<M>): ThreadsAsyncSuccess<M>;
1385
1373
  /**
1386
1374
  * (Private beta) Returns the chats for the current user.
1387
1375
  *
@@ -1436,7 +1424,7 @@ type LiveblocksContextBundle<U extends BaseUserMeta, TM extends BaseMetadata, CM
1436
1424
  }>;
1437
1425
  }>;
1438
1426
 
1439
- type ReadonlyThreadDB<TM extends BaseMetadata, CM extends BaseMetadata> = Omit<ThreadDB<TM, CM>, "upsert" | "delete" | "signal">;
1427
+ type ReadonlyThreadDB<M extends BaseMetadata> = Omit<ThreadDB<M>, "upsert" | "delete" | "signal">;
1440
1428
  /**
1441
1429
  * This class implements a lightweight, in-memory, "database" for all Thread
1442
1430
  * instances.
@@ -1454,20 +1442,20 @@ type ReadonlyThreadDB<TM extends BaseMetadata, CM extends BaseMetadata> = Omit<T
1454
1442
  * optimistic updates without losing the original thread contents.
1455
1443
  *
1456
1444
  */
1457
- declare class ThreadDB<TM extends BaseMetadata, CM extends BaseMetadata> {
1445
+ declare class ThreadDB<M extends BaseMetadata> {
1458
1446
  #private;
1459
1447
  readonly signal: MutableSignal<this>;
1460
1448
  constructor();
1461
- clone(): ThreadDB<TM, CM>;
1449
+ clone(): ThreadDB<M>;
1462
1450
  /** Returns an existing thread by ID. Will never return a deleted thread. */
1463
- get(threadId: string): ThreadData<TM, CM> | undefined;
1451
+ get(threadId: string): ThreadData<M> | undefined;
1464
1452
  /** Returns the (possibly deleted) thread by ID. */
1465
- getEvenIfDeleted(threadId: string): ThreadDataWithDeleteInfo<TM, CM> | undefined;
1453
+ getEvenIfDeleted(threadId: string): ThreadDataWithDeleteInfo<M> | undefined;
1466
1454
  /** Adds or updates a thread in the DB. If the newly given thread is a deleted one, it will get deleted. */
1467
- upsert(thread: ThreadDataWithDeleteInfo<TM, CM>): void;
1455
+ upsert(thread: ThreadDataWithDeleteInfo<M>): void;
1468
1456
  /** Like .upsert(), except it won't update if a thread by this ID already exists. */
1469
- upsertIfNewer(thread: ThreadDataWithDeleteInfo<TM, CM>): void;
1470
- applyDelta(newThreads: ThreadData<TM, CM>[], deletedThreads: ThreadDeleteInfo[]): void;
1457
+ upsertIfNewer(thread: ThreadDataWithDeleteInfo<M>): void;
1458
+ applyDelta(newThreads: ThreadData<M>[], deletedThreads: ThreadDeleteInfo[]): void;
1471
1459
  /**
1472
1460
  * Marks a thread as deleted. It will no longer pop up in .findMany()
1473
1461
  * queries, but it can still be accessed via `.getEvenIfDeleted()`.
@@ -1486,15 +1474,15 @@ declare class ThreadDB<TM extends BaseMetadata, CM extends BaseMetadata> {
1486
1474
  *
1487
1475
  * Subscriptions are needed to filter threads based on the user's subscriptions.
1488
1476
  */
1489
- findMany(roomId: string | undefined, query: ThreadsQuery<TM> | undefined, direction: "asc" | "desc", subscriptions: Record<SubscriptionKey, SubscriptionData> | undefined): ThreadData<TM, CM>[];
1477
+ findMany(roomId: string | undefined, query: ThreadsQuery<M> | undefined, direction: "asc" | "desc", subscriptions: Record<SubscriptionKey, SubscriptionData> | undefined): ThreadData<M>[];
1490
1478
  }
1491
1479
 
1492
- type OptimisticUpdate<TM extends BaseMetadata, CM extends BaseMetadata> = CreateThreadOptimisticUpdate<TM, CM> | DeleteThreadOptimisticUpdate | EditThreadMetadataOptimisticUpdate<TM> | MarkThreadAsResolvedOptimisticUpdate | MarkThreadAsUnresolvedOptimisticUpdate | SubscribeToThreadOptimisticUpdate | UnsubscribeFromThreadOptimisticUpdate | CreateCommentOptimisticUpdate<CM> | EditCommentOptimisticUpdate<CM> | EditCommentMetadataOptimisticUpdate<CM> | DeleteCommentOptimisticUpdate | AddReactionOptimisticUpdate | RemoveReactionOptimisticUpdate | MarkInboxNotificationAsReadOptimisticUpdate | MarkAllInboxNotificationsAsReadOptimisticUpdate | DeleteInboxNotificationOptimisticUpdate | DeleteAllInboxNotificationsOptimisticUpdate | UpdateRoomSubscriptionSettingsOptimisticUpdate | UpdateNotificationSettingsOptimisticUpdate;
1493
- type CreateThreadOptimisticUpdate<TM extends BaseMetadata, CM extends BaseMetadata> = {
1480
+ type OptimisticUpdate<M extends BaseMetadata> = CreateThreadOptimisticUpdate<M> | DeleteThreadOptimisticUpdate | EditThreadMetadataOptimisticUpdate<M> | MarkThreadAsResolvedOptimisticUpdate | MarkThreadAsUnresolvedOptimisticUpdate | SubscribeToThreadOptimisticUpdate | UnsubscribeFromThreadOptimisticUpdate | CreateCommentOptimisticUpdate | EditCommentOptimisticUpdate | DeleteCommentOptimisticUpdate | AddReactionOptimisticUpdate | RemoveReactionOptimisticUpdate | MarkInboxNotificationAsReadOptimisticUpdate | MarkAllInboxNotificationsAsReadOptimisticUpdate | DeleteInboxNotificationOptimisticUpdate | DeleteAllInboxNotificationsOptimisticUpdate | UpdateRoomSubscriptionSettingsOptimisticUpdate | UpdateNotificationSettingsOptimisticUpdate;
1481
+ type CreateThreadOptimisticUpdate<M extends BaseMetadata> = {
1494
1482
  type: "create-thread";
1495
1483
  id: string;
1496
1484
  roomId: string;
1497
- thread: ThreadData<TM, CM>;
1485
+ thread: ThreadData<M>;
1498
1486
  };
1499
1487
  type DeleteThreadOptimisticUpdate = {
1500
1488
  type: "delete-thread";
@@ -1503,11 +1491,11 @@ type DeleteThreadOptimisticUpdate = {
1503
1491
  threadId: string;
1504
1492
  deletedAt: Date;
1505
1493
  };
1506
- type EditThreadMetadataOptimisticUpdate<TM extends BaseMetadata> = {
1494
+ type EditThreadMetadataOptimisticUpdate<M extends BaseMetadata> = {
1507
1495
  type: "edit-thread-metadata";
1508
1496
  id: string;
1509
1497
  threadId: string;
1510
- metadata: Resolve<Patchable<TM>>;
1498
+ metadata: Resolve<Patchable<M>>;
1511
1499
  updatedAt: Date;
1512
1500
  };
1513
1501
  type MarkThreadAsResolvedOptimisticUpdate = {
@@ -1534,23 +1522,15 @@ type UnsubscribeFromThreadOptimisticUpdate = {
1534
1522
  threadId: string;
1535
1523
  unsubscribedAt: Date;
1536
1524
  };
1537
- type CreateCommentOptimisticUpdate<CM extends BaseMetadata> = {
1525
+ type CreateCommentOptimisticUpdate = {
1538
1526
  type: "create-comment";
1539
1527
  id: string;
1540
- comment: CommentData<CM>;
1528
+ comment: CommentData;
1541
1529
  };
1542
- type EditCommentOptimisticUpdate<CM extends BaseMetadata> = {
1530
+ type EditCommentOptimisticUpdate = {
1543
1531
  type: "edit-comment";
1544
1532
  id: string;
1545
- comment: CommentData<CM>;
1546
- };
1547
- type EditCommentMetadataOptimisticUpdate<CM extends BaseMetadata> = {
1548
- type: "edit-comment-metadata";
1549
- id: string;
1550
- threadId: string;
1551
- commentId: string;
1552
- metadata: Resolve<Patchable<CM>>;
1553
- updatedAt: Date;
1533
+ comment: CommentData;
1554
1534
  };
1555
1535
  type DeleteCommentOptimisticUpdate = {
1556
1536
  type: "delete-comment";
@@ -1646,14 +1626,14 @@ type NotificationsLUT = Map<string, InboxNotificationData>;
1646
1626
  */
1647
1627
  type RoomSubscriptionSettingsByRoomId = Record<RoomId, RoomSubscriptionSettings$1>;
1648
1628
  type SubscriptionsByKey = Record<SubscriptionKey, SubscriptionData>;
1649
- type CleanThreadifications<TM extends BaseMetadata, CM extends BaseMetadata> = CleanThreads<TM, CM> & CleanNotifications;
1650
- type CleanThreads<TM extends BaseMetadata, CM extends BaseMetadata> = {
1629
+ type CleanThreadifications<M extends BaseMetadata> = CleanThreads<M> & CleanNotifications;
1630
+ type CleanThreads<M extends BaseMetadata> = {
1651
1631
  /**
1652
1632
  * Keep track of loading and error status of all the queries made by the client.
1653
1633
  * e.g. 'room-abc-{"color":"red"}' - ok
1654
1634
  * e.g. 'room-abc-{}' - loading
1655
1635
  */
1656
- threadsDB: ReadonlyThreadDB<TM, CM>;
1636
+ threadsDB: ReadonlyThreadDB<M>;
1657
1637
  };
1658
1638
  type CleanNotifications = {
1659
1639
  /**
@@ -1688,7 +1668,7 @@ declare function createStore_forNotifications(): {
1688
1668
  delete: (inboxNotificationId: string) => void;
1689
1669
  applyDelta: (newNotifications: InboxNotificationData[], deletedNotifications: InboxNotificationDeleteInfo[]) => void;
1690
1670
  clear: () => void;
1691
- updateAssociatedNotification: <CM extends BaseMetadata>(newComment: CommentData<CM>) => void;
1671
+ updateAssociatedNotification: (newComment: CommentData) => void;
1692
1672
  upsert: (notification: InboxNotificationData) => void;
1693
1673
  };
1694
1674
  declare function createStore_forUnreadNotificationsCount(): {
@@ -1697,13 +1677,13 @@ declare function createStore_forUnreadNotificationsCount(): {
1697
1677
  }>;
1698
1678
  update: (queryKey: InboxNotificationsQueryKey, count: number) => void;
1699
1679
  };
1700
- declare function createStore_forSubscriptions(updates: ISignal<readonly OptimisticUpdate<BaseMetadata, BaseMetadata>[]>, threads: ReadonlyThreadDB<BaseMetadata, BaseMetadata>): {
1680
+ declare function createStore_forSubscriptions(updates: ISignal<readonly OptimisticUpdate<BaseMetadata>[]>, threads: ReadonlyThreadDB<BaseMetadata>): {
1701
1681
  signal: DerivedSignal<SubscriptionsByKey>;
1702
1682
  applyDelta: (newSubscriptions: SubscriptionData[], deletedSubscriptions: SubscriptionDeleteInfo[]) => void;
1703
1683
  create: (subscription: SubscriptionData) => void;
1704
1684
  delete: (subscriptionKey: SubscriptionKey) => void;
1705
1685
  };
1706
- declare function createStore_forRoomSubscriptionSettings(updates: ISignal<readonly OptimisticUpdate<BaseMetadata, BaseMetadata>[]>): {
1686
+ declare function createStore_forRoomSubscriptionSettings(updates: ISignal<readonly OptimisticUpdate<BaseMetadata>[]>): {
1707
1687
  signal: DerivedSignal<RoomSubscriptionSettingsByRoomId>;
1708
1688
  update: (roomId: string, settings: RoomSubscriptionSettings$1) => void;
1709
1689
  };
@@ -1743,18 +1723,18 @@ declare function createStore_forPermissionHints(): {
1743
1723
  * }
1744
1724
  * e.g. {} when before the first successful fetch.
1745
1725
  */
1746
- declare function createStore_forNotificationSettings(updates: ISignal<readonly OptimisticUpdate<BaseMetadata, BaseMetadata>[]>): {
1726
+ declare function createStore_forNotificationSettings(updates: ISignal<readonly OptimisticUpdate<BaseMetadata>[]>): {
1747
1727
  signal: DerivedSignal<NotificationSettings>;
1748
1728
  update: (settings: NotificationSettings) => void;
1749
1729
  };
1750
- declare function createStore_forOptimistic<TM extends BaseMetadata, CM extends BaseMetadata>(client: Client$1<BaseUserMeta$1, TM, CM>): {
1751
- signal: ISignal<readonly OptimisticUpdate<TM, CM>[]>;
1752
- add: (optimisticUpdate: DistributiveOmit<OptimisticUpdate<TM, CM>, "id">) => string;
1730
+ declare function createStore_forOptimistic<M extends BaseMetadata>(client: Client$1<BaseUserMeta$1, M>): {
1731
+ signal: ISignal<readonly OptimisticUpdate<M>[]>;
1732
+ add: (optimisticUpdate: DistributiveOmit<OptimisticUpdate<M>, "id">) => string;
1753
1733
  remove: (optimisticId: string) => void;
1754
1734
  };
1755
- declare class UmbrellaStore<TM extends BaseMetadata, CM extends BaseMetadata> {
1735
+ declare class UmbrellaStore<M extends BaseMetadata> {
1756
1736
  #private;
1757
- readonly threads: ThreadDB<TM, CM>;
1737
+ readonly threads: ThreadDB<M>;
1758
1738
  readonly notifications: ReturnType<typeof createStore_forNotifications>;
1759
1739
  readonly subscriptions: ReturnType<typeof createStore_forSubscriptions>;
1760
1740
  readonly roomSubscriptionSettings: ReturnType<typeof createStore_forRoomSubscriptionSettings>;
@@ -1763,12 +1743,12 @@ declare class UmbrellaStore<TM extends BaseMetadata, CM extends BaseMetadata> {
1763
1743
  readonly urlsMetadata: ReturnType<typeof createStore_forUrlsMetadata>;
1764
1744
  readonly permissionHints: ReturnType<typeof createStore_forPermissionHints>;
1765
1745
  readonly notificationSettings: ReturnType<typeof createStore_forNotificationSettings>;
1766
- readonly optimisticUpdates: ReturnType<typeof createStore_forOptimistic<TM, CM>>;
1746
+ readonly optimisticUpdates: ReturnType<typeof createStore_forOptimistic<M>>;
1767
1747
  readonly outputs: {
1768
- readonly threadifications: DerivedSignal<CleanThreadifications<TM, CM>>;
1769
- readonly threads: DerivedSignal<ReadonlyThreadDB<TM, CM>>;
1770
- readonly loadingRoomThreads: DefaultMap<RoomQueryKey, LoadableResource<ThreadsAsyncResult<TM, CM>>>;
1771
- readonly loadingUserThreads: DefaultMap<UserQueryKey, LoadableResource<ThreadsAsyncResult<TM, CM>>>;
1748
+ readonly threadifications: DerivedSignal<CleanThreadifications<M>>;
1749
+ readonly threads: DerivedSignal<ReadonlyThreadDB<M>>;
1750
+ readonly loadingRoomThreads: DefaultMap<RoomQueryKey, LoadableResource<ThreadsAsyncResult<M>>>;
1751
+ readonly loadingUserThreads: DefaultMap<UserQueryKey, LoadableResource<ThreadsAsyncResult<M>>>;
1772
1752
  readonly notifications: DerivedSignal<CleanNotifications>;
1773
1753
  readonly threadSubscriptions: DerivedSignal<CleanThreadSubscriptions>;
1774
1754
  readonly loadingNotifications: DefaultMap<InboxNotificationsQueryKey, LoadableResource<InboxNotificationsAsyncResult>>;
@@ -1813,9 +1793,9 @@ declare class UmbrellaStore<TM extends BaseMetadata, CM extends BaseMetadata> {
1813
1793
  /**
1814
1794
  * Creates an new thread, replacing the corresponding optimistic update.
1815
1795
  */
1816
- createThread(optimisticId: string, thread: Readonly<ThreadDataWithDeleteInfo<TM, CM>>): void;
1796
+ createThread(optimisticId: string, thread: Readonly<ThreadDataWithDeleteInfo<M>>): void;
1817
1797
  patchThread(threadId: string, optimisticId: string | null, patch: {
1818
- metadata?: TM;
1798
+ metadata?: M;
1819
1799
  resolved?: boolean;
1820
1800
  }, updatedAt: Date): void;
1821
1801
  addReaction(threadId: string, optimisticId: string | null, commentId: string, reaction: CommentUserReaction, createdAt: Date): void;
@@ -1833,11 +1813,10 @@ declare class UmbrellaStore<TM extends BaseMetadata, CM extends BaseMetadata> {
1833
1813
  * Creates an existing comment and ensures the associated notification is
1834
1814
  * updated correctly, replacing the corresponding optimistic update.
1835
1815
  */
1836
- createComment(newComment: CommentData<CM>, optimisticId: string): void;
1837
- editComment(threadId: string, optimisticId: string, editedComment: CommentData<CM>): void;
1838
- editCommentMetadata(threadId: string, commentId: string, optimisticId: string, updatedMetadata: CM, updatedAt: Date): void;
1816
+ createComment(newComment: CommentData, optimisticId: string): void;
1817
+ editComment(threadId: string, optimisticId: string, editedComment: CommentData): void;
1839
1818
  deleteComment(threadId: string, optimisticId: string, commentId: string, deletedAt: Date): void;
1840
- updateThreadifications(threads: ThreadData<TM, CM>[], notifications: InboxNotificationData[], subscriptions: SubscriptionData[], deletedThreads?: ThreadDeleteInfo[], deletedNotifications?: InboxNotificationDeleteInfo[], deletedSubscriptions?: SubscriptionDeleteInfo[]): void;
1819
+ updateThreadifications(threads: ThreadData<M>[], notifications: InboxNotificationData[], subscriptions: SubscriptionData[], deletedThreads?: ThreadDeleteInfo[], deletedNotifications?: InboxNotificationDeleteInfo[], deletedSubscriptions?: SubscriptionDeleteInfo[]): void;
1841
1820
  /**
1842
1821
  * Updates existing subscription settings for a room with a new value,
1843
1822
  * replacing the corresponding optimistic update.
@@ -1865,7 +1844,7 @@ declare class UmbrellaStore<TM extends BaseMetadata, CM extends BaseMetadata> {
1865
1844
  *
1866
1845
  * @private
1867
1846
  */
1868
- declare function getUmbrellaStoreForClient<TM extends BaseMetadata$1, CM extends BaseMetadata$1>(client: OpaqueClient): UmbrellaStore<TM, CM>;
1847
+ declare function getUmbrellaStoreForClient<M extends BaseMetadata$1>(client: OpaqueClient): UmbrellaStore<M>;
1869
1848
  /**
1870
1849
  * Returns a function that creates an AI chat.
1871
1850
  *
@@ -1967,7 +1946,7 @@ declare function LiveblocksProvider<U extends BaseUserMeta = DU>(props: PropsWit
1967
1946
  * LiveblocksProvider created in this way takes no props, because it uses
1968
1947
  * settings from the given client instead.
1969
1948
  */
1970
- declare function createLiveblocksContext<U extends BaseUserMeta = DU, TM extends BaseMetadata$1 = DTM, CM extends BaseMetadata$1 = DCM>(client: OpaqueClient): LiveblocksContextBundle<U, TM, CM>;
1949
+ declare function createLiveblocksContext<U extends BaseUserMeta = DU, M extends BaseMetadata$1 = DM>(client: OpaqueClient): LiveblocksContextBundle<U, M>;
1971
1950
  /**
1972
1951
  * Returns the inbox notifications for the current user.
1973
1952
  *
@@ -2094,7 +2073,7 @@ declare function useGroupInfo(groupId: string): GroupInfoAsyncResult;
2094
2073
  * const { info } = useGroupInfo("group-id");
2095
2074
  */
2096
2075
  declare function useGroupInfoSuspense(groupId: string): GroupInfoAsyncSuccess;
2097
- type TypedBundle$1 = LiveblocksContextBundle<DU, DTM, DCM>;
2076
+ type TypedBundle$1 = LiveblocksContextBundle<DU, DM>;
2098
2077
  /**
2099
2078
  * Returns the thread associated with a `"thread"` inbox notification.
2100
2079
  *
@@ -2314,17 +2293,33 @@ declare function useOthersConnectionIds(): readonly number[];
2314
2293
  /**
2315
2294
  * @private
2316
2295
  */
2317
- declare function useCreateRoomThread<TM extends BaseMetadata$1, CM extends BaseMetadata$1>(roomId: string): (options: CreateThreadOptions<TM, CM>) => ThreadData$1<TM, CM>;
2296
+ declare function useCreateRoomThread<M extends BaseMetadata$1>(roomId: string): (options: CreateThreadOptions<M>) => ThreadData$1<M>;
2318
2297
  declare function useDeleteRoomThread(roomId: string): (threadId: string) => void;
2319
- declare function useEditRoomThreadMetadata<TM extends BaseMetadata$1>(roomId: string): (options: EditThreadMetadataOptions<TM>) => void;
2298
+ declare function useEditRoomThreadMetadata<M extends BaseMetadata$1>(roomId: string): (options: EditThreadMetadataOptions<M>) => void;
2299
+ /**
2300
+ * Returns a function that adds a comment to a thread.
2301
+ *
2302
+ * @example
2303
+ * const createComment = useCreateComment();
2304
+ * createComment({ threadId: "th_xxx", body: {} });
2305
+ */
2306
+ declare function useCreateComment(): (options: CreateCommentOptions) => CommentData$1;
2320
2307
  /**
2321
2308
  * @private
2322
2309
  */
2323
- declare function useCreateRoomComment<CM extends BaseMetadata$1>(roomId: string): (options: CreateCommentOptions<CM>) => CommentData$1<CM>;
2310
+ declare function useCreateRoomComment(roomId: string): (options: CreateCommentOptions) => CommentData$1;
2311
+ /**
2312
+ * Returns a function that edits a comment's body.
2313
+ *
2314
+ * @example
2315
+ * const editComment = useEditComment()
2316
+ * editComment({ threadId: "th_xxx", commentId: "cm_xxx", body: {} })
2317
+ */
2318
+ declare function useEditComment(): (options: EditCommentOptions) => void;
2324
2319
  /**
2325
2320
  * @private
2326
2321
  */
2327
- declare function useEditRoomComment<CM extends BaseMetadata$1>(roomId: string): (options: EditCommentOptions<CM>) => void;
2322
+ declare function useEditRoomComment(roomId: string): (options: EditCommentOptions) => void;
2328
2323
  /**
2329
2324
  * Returns a function that deletes a comment.
2330
2325
  * If it is the last non-deleted comment, the thread also gets deleted.
@@ -2341,7 +2336,7 @@ declare function useDeleteRoomComment(roomId: string): ({ threadId, commentId }:
2341
2336
  /**
2342
2337
  * @private
2343
2338
  */
2344
- declare function useAddRoomCommentReaction(roomId: string): ({ threadId, commentId, emoji }: CommentReactionOptions) => void;
2339
+ declare function useAddRoomCommentReaction<M extends BaseMetadata$1>(roomId: string): ({ threadId, commentId, emoji }: CommentReactionOptions) => void;
2345
2340
  /**
2346
2341
  * Returns a function that removes a reaction on a comment.
2347
2342
  *
@@ -2480,8 +2475,8 @@ declare function useRoomPermissions(roomId: string): Set<_liveblocks_core.Permis
2480
2475
  * that any RoomProvider created in this way does not need to be nested in
2481
2476
  * LiveblocksProvider, as it already has access to the client.
2482
2477
  */
2483
- declare function createRoomContext<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUserMeta = DU, E extends Json = DE, TM extends BaseMetadata$1 = DTM, CM extends BaseMetadata$1 = DCM>(client: OpaqueClient): RoomContextBundle<P, S, U, E, TM, CM>;
2484
- type TypedBundle = RoomContextBundle<DP, DS, DU, DE, DTM, DCM>;
2478
+ declare function createRoomContext<P extends JsonObject = DP, S extends LsonObject = DS, U extends BaseUserMeta = DU, E extends Json = DE, M extends BaseMetadata$1 = DM>(client: OpaqueClient): RoomContextBundle<P, S, U, E, M>;
2479
+ type TypedBundle = RoomContextBundle<DP, DS, DU, DE, DM>;
2485
2480
  /**
2486
2481
  * Makes a Room available in the component hierarchy below.
2487
2482
  * Joins the room when the component is mounted, and automatically leaves
@@ -2600,31 +2595,6 @@ declare const _useDeleteThread: TypedBundle["useDeleteThread"];
2600
2595
  * editThreadMetadata({ threadId: "th_xxx", metadata: {} })
2601
2596
  */
2602
2597
  declare const _useEditThreadMetadata: TypedBundle["useEditThreadMetadata"];
2603
- /**
2604
- * Returns a function that adds a comment to a thread.
2605
- *
2606
- * @example
2607
- * const createComment = useCreateComment();
2608
- * createComment({ threadId: "th_xxx", body: {} });
2609
- */
2610
- declare const _useCreateComment: TypedBundle["useCreateComment"];
2611
- /**
2612
- * Returns a function that edits a comment.
2613
- *
2614
- * @example
2615
- * const editComment = useEditComment()
2616
- * editComment({ threadId: "th_xxx", commentId: "cm_xxx", body: {} })
2617
- */
2618
- declare const _useEditComment: TypedBundle["useEditComment"];
2619
- /**
2620
- * Returns a function that edits a comment's metadata.
2621
- * To delete an existing metadata property, set its value to `null`.
2622
- *
2623
- * @example
2624
- * const editCommentMetadata = useEditCommentMetadata();
2625
- * editCommentMetadata({ threadId: "th_xxx", commentId: "cm_xxx", metadata: { slackChannelId: "C024BE91L", slackMessageTs: "1700311782.001200" } })
2626
- */
2627
- declare const _useEditCommentMetadata: TypedBundle["useEditCommentMetadata"];
2628
2598
  /**
2629
2599
  * useEventListener is a React hook that allows you to respond to events broadcast
2630
2600
  * by other users in the room.
@@ -2983,4 +2953,4 @@ declare const _useStorageRoot: TypedBundle["useStorageRoot"];
2983
2953
  */
2984
2954
  declare const _useUpdateMyPresence: TypedBundle["useUpdateMyPresence"];
2985
2955
 
2986
- export { _useEditThreadMetadata as $, type AiChatStatus as A, createLiveblocksContext as B, ClientContext as C, useDeleteAllInboxNotifications as D, useDeleteInboxNotification as E, useErrorListener as F, type GroupAsyncResult as G, useMarkAllInboxNotificationsAsRead as H, useMarkInboxNotificationAsRead as I, useSyncStatus as J, createRoomContext as K, LiveblocksProvider as L, type MutationContext as M, _RoomProvider as N, _useAddReaction as O, _useBroadcastEvent as P, useCanRedo as Q, type RegisterAiKnowledgeProps as R, type SendAiMessageOptions as S, useCanUndo as T, type UseSendAiMessageOptions as U, _useCreateComment as V, _useCreateThread as W, useDeleteComment as X, _useDeleteThread as Y, _useEditComment as Z, _useInboxNotificationThread as _, useAddRoomCommentReaction as a, useGroupInfoSuspense as a$, _useEditCommentMetadata as a0, useMarkThreadAsResolved as a1, useMarkThreadAsUnresolved as a2, useSubscribeToThread as a3, useUnsubscribeFromThread as a4, _useEventListener as a5, useHistory as a6, _useIsInsideRoom as a7, useLostConnectionListener as a8, useMarkThreadAsRead as a9, useUpdateNotificationSettings as aA, useCreateAiChat as aB, useDeleteAiChat as aC, useSendAiMessage as aD, _useUserThreads_experimental as aE, useRoomInfo as aF, useGroupInfo as aG, useUnreadInboxNotificationsCount as aH, _useUser as aI, _useAiChat as aJ, _useAiChats as aK, _useAiChatMessages as aL, useAiChatStatus as aM, _useUrlMetadata as aN, _useOtherSuspense as aO, _useOthersSuspense as aP, useOthersConnectionIdsSuspense as aQ, _useOthersMappedSuspense as aR, _useSelfSuspense as aS, _useStorageSuspense as aT, _useThreadsSuspense as aU, useAttachmentUrlSuspense as aV, _useHistoryVersionsSuspense as aW, _useRoomSubscriptionSettingsSuspense as aX, useInboxNotificationsSuspense as aY, useNotificationSettingsSuspense as aZ, useRoomInfoSuspense as a_, _useMutation as aa, _useMyPresence as ab, _useOthersListener as ac, useRedo as ad, useRemoveReaction as ae, _useRoom as af, useStatus as ag, _useStorageRoot as ah, useThreadSubscription as ai, useUndo as aj, _useUpdateMyPresence as ak, useUpdateRoomSubscriptionSettings as al, useHistoryVersionData as am, _useOther as an, _useOthers as ao, useOthersConnectionIds as ap, _useOthersMapped as aq, _useSelf as ar, _useStorage as as, _useThreads as at, _useSearchComments as au, useAttachmentUrl as av, _useHistoryVersions as aw, _useRoomSubscriptionSettings as ax, useInboxNotifications as ay, useNotificationSettings as az, useCreateRoomComment as b, useUnreadInboxNotificationsCountSuspense as b0, _useUserSuspense as b1, _useUserThreadsSuspense_experimental as b2, _useAiChatsSuspense as b3, _useAiChatMessagesSuspense as b4, _useAiChatSuspense as b5, _useUrlMetadataSuspense as b6, useCreateRoomThread as c, useCreateTextMention as d, useDeleteRoomComment as e, useDeleteRoomThread as f, getUmbrellaStoreForClient as g, useDeleteTextMention as h, useEditRoomComment as i, useEditRoomThreadMetadata as j, useMarkRoomThreadAsRead as k, useMarkRoomThreadAsResolved as l, useMarkRoomThreadAsUnresolved as m, useMentionSuggestionsCache as n, useRemoveRoomCommentReaction as o, useReportTextEditor as p, useResolveMentionSuggestions as q, useRoomAttachmentUrl as r, useRoomPermissions as s, useRoomThreadSubscription as t, useClientOrNull as u, useYjsProvider as v, type RegisterAiToolProps as w, type UseThreadsOptions as x, RoomContext as y, useClient as z };
2956
+ export { _useEditThreadMetadata as $, type AiChatStatus as A, createLiveblocksContext as B, ClientContext as C, useDeleteAllInboxNotifications as D, useDeleteInboxNotification as E, useErrorListener as F, type GroupAsyncResult as G, useMarkAllInboxNotificationsAsRead as H, useMarkInboxNotificationAsRead as I, useSyncStatus as J, createRoomContext as K, LiveblocksProvider as L, type MutationContext as M, _RoomProvider as N, _useAddReaction as O, _useBroadcastEvent as P, useCanRedo as Q, type RegisterAiKnowledgeProps as R, type SendAiMessageOptions as S, useCanUndo as T, type UseSendAiMessageOptions as U, useCreateComment as V, _useCreateThread as W, useDeleteComment as X, _useDeleteThread as Y, useEditComment as Z, _useInboxNotificationThread as _, useAddRoomCommentReaction as a, useUnreadInboxNotificationsCountSuspense as a$, useMarkThreadAsResolved as a0, useMarkThreadAsUnresolved as a1, useSubscribeToThread as a2, useUnsubscribeFromThread as a3, _useEventListener as a4, useHistory as a5, _useIsInsideRoom as a6, useLostConnectionListener as a7, useMarkThreadAsRead as a8, _useMutation as a9, useCreateAiChat as aA, useDeleteAiChat as aB, useSendAiMessage as aC, _useUserThreads_experimental as aD, useRoomInfo as aE, useGroupInfo as aF, useUnreadInboxNotificationsCount as aG, _useUser as aH, _useAiChat as aI, _useAiChats as aJ, _useAiChatMessages as aK, useAiChatStatus as aL, _useUrlMetadata as aM, _useOtherSuspense as aN, _useOthersSuspense as aO, useOthersConnectionIdsSuspense as aP, _useOthersMappedSuspense as aQ, _useSelfSuspense as aR, _useStorageSuspense as aS, _useThreadsSuspense as aT, useAttachmentUrlSuspense as aU, _useHistoryVersionsSuspense as aV, _useRoomSubscriptionSettingsSuspense as aW, useInboxNotificationsSuspense as aX, useNotificationSettingsSuspense as aY, useRoomInfoSuspense as aZ, useGroupInfoSuspense as a_, _useMyPresence as aa, _useOthersListener as ab, useRedo as ac, useRemoveReaction as ad, _useRoom as ae, useStatus as af, _useStorageRoot as ag, useThreadSubscription as ah, useUndo as ai, _useUpdateMyPresence as aj, useUpdateRoomSubscriptionSettings as ak, useHistoryVersionData as al, _useOther as am, _useOthers as an, useOthersConnectionIds as ao, _useOthersMapped as ap, _useSelf as aq, _useStorage as ar, _useThreads as as, _useSearchComments as at, useAttachmentUrl as au, _useHistoryVersions as av, _useRoomSubscriptionSettings as aw, useInboxNotifications as ax, useNotificationSettings as ay, useUpdateNotificationSettings as az, useCreateRoomComment as b, _useUserSuspense as b0, _useUserThreadsSuspense_experimental as b1, _useAiChatsSuspense as b2, _useAiChatMessagesSuspense as b3, _useAiChatSuspense as b4, _useUrlMetadataSuspense as b5, useCreateRoomThread as c, useCreateTextMention as d, useDeleteRoomComment as e, useDeleteRoomThread as f, getUmbrellaStoreForClient as g, useDeleteTextMention as h, useEditRoomComment as i, useEditRoomThreadMetadata as j, useMarkRoomThreadAsRead as k, useMarkRoomThreadAsResolved as l, useMarkRoomThreadAsUnresolved as m, useMentionSuggestionsCache as n, useRemoveRoomCommentReaction as o, useReportTextEditor as p, useResolveMentionSuggestions as q, useRoomAttachmentUrl as r, useRoomPermissions as s, useRoomThreadSubscription as t, useClientOrNull as u, useYjsProvider as v, type RegisterAiToolProps as w, type UseThreadsOptions as x, RoomContext as y, useClient as z };