@liveblocks/core 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1715,68 +1715,177 @@ declare type SubscribeFn<P extends JsonObject, _TStorage extends LsonObject, U e
1715
1715
  * });
1716
1716
  */
1717
1717
  (type: "storage-status", listener: Callback<StorageStatus>): () => void;
1718
+ (type: "comments", listener: Callback<CommentsEventServerMsg>): () => void;
1718
1719
  };
1719
1720
  declare type GetThreadsOptions<M extends BaseMetadata> = {
1720
1721
  query?: {
1721
1722
  resolved?: boolean;
1722
1723
  metadata?: Partial<QueryMetadata<M>>;
1723
1724
  };
1724
- since?: Date;
1725
1725
  };
1726
1726
  declare type CommentsApi<M extends BaseMetadata> = {
1727
+ /**
1728
+ * Returns the threads within the current room and their associated inbox notifications.
1729
+ * It also returns the request date that can be used for subsequent polling.
1730
+ *
1731
+ * @example
1732
+ * const {
1733
+ * threads,
1734
+ * inboxNotifications,
1735
+ * requestedAt
1736
+ * } = await room.getThreads({ query: { resolved: false }});
1737
+ */
1727
1738
  getThreads(options?: GetThreadsOptions<M>): Promise<{
1728
1739
  threads: ThreadData<M>[];
1729
1740
  inboxNotifications: InboxNotificationData[];
1730
- deletedThreads: ThreadDeleteInfo[];
1731
- deletedInboxNotifications: InboxNotificationDeleteInfo[];
1732
- meta: {
1733
- requestedAt: Date;
1734
- };
1741
+ requestedAt: Date;
1735
1742
  }>;
1736
- getThread(options: {
1737
- threadId: string;
1743
+ /**
1744
+ * Returns the updated and deleted threads and their associated inbox notifications since the requested date.
1745
+ *
1746
+ * @example
1747
+ * const result = await room.getThreads();
1748
+ * // ... //
1749
+ * await room.getThreadsSince({ since: result.requestedAt });
1750
+ */
1751
+ getThreadsSince(options: {
1752
+ since: Date;
1738
1753
  }): Promise<{
1739
- thread: ThreadData<M>;
1754
+ threads: {
1755
+ updated: ThreadData<M>[];
1756
+ deleted: ThreadDeleteInfo[];
1757
+ };
1758
+ inboxNotifications: {
1759
+ updated: InboxNotificationData[];
1760
+ deleted: InboxNotificationDeleteInfo[];
1761
+ };
1762
+ requestedAt: Date;
1763
+ }>;
1764
+ /**
1765
+ * Returns a thread and the associated inbox notification if it exists.
1766
+ *
1767
+ * @example
1768
+ * const { thread, inboxNotification } = await room.getThread("th_xxx");
1769
+ */
1770
+ getThread(threadId: string): Promise<{
1771
+ thread?: ThreadData<M>;
1740
1772
  inboxNotification?: InboxNotificationData;
1741
- } | undefined>;
1773
+ }>;
1774
+ /**
1775
+ * Creates a thread.
1776
+ *
1777
+ * @example
1778
+ * const thread = await room.createThread({
1779
+ * body: {
1780
+ * version: 1,
1781
+ * content: [{ type: "paragraph", children: [{ text: "Hello" }] }],
1782
+ * },
1783
+ * })
1784
+ */
1742
1785
  createThread(options: {
1743
- threadId: string;
1744
- commentId: string;
1786
+ threadId?: string;
1787
+ commentId?: string;
1745
1788
  metadata: M | undefined;
1746
1789
  body: CommentBody;
1747
1790
  }): Promise<ThreadData<M>>;
1748
- deleteThread(options: {
1749
- threadId: string;
1750
- }): Promise<void>;
1791
+ /**
1792
+ * Deletes a thread.
1793
+ *
1794
+ * @example
1795
+ * await room.deleteThread("th_xxx");
1796
+ */
1797
+ deleteThread(threadId: string): Promise<void>;
1798
+ /**
1799
+ * Edits a thread's metadata.
1800
+ * To delete an existing metadata property, set its value to `null`.
1801
+ *
1802
+ * @example
1803
+ * await room.editThreadMetadata({ threadId: "th_xxx", metadata: { x: 100, y: 100 } })
1804
+ */
1751
1805
  editThreadMetadata(options: {
1752
1806
  metadata: Patchable<M>;
1753
1807
  threadId: string;
1754
1808
  }): Promise<M>;
1755
- markThreadAsResolved(options: {
1756
- threadId: string;
1757
- }): Promise<void>;
1758
- markThreadAsUnresolved(options: {
1759
- threadId: string;
1760
- }): Promise<void>;
1809
+ /**
1810
+ * Marks a thread as resolved.
1811
+ *
1812
+ * @example
1813
+ * await room.markThreadAsResolved("th_xxx");
1814
+ */
1815
+ markThreadAsResolved(threadId: string): Promise<void>;
1816
+ /**
1817
+ * Marks a thread as unresolved.
1818
+ *
1819
+ * @example
1820
+ * await room.markThreadAsUnresolved("th_xxx");
1821
+ */
1822
+ markThreadAsUnresolved(threadId: string): Promise<void>;
1823
+ /**
1824
+ * Creates a comment.
1825
+ *
1826
+ * @example
1827
+ * await room.createComment({
1828
+ * threadId: "th_xxx",
1829
+ * body: {
1830
+ * version: 1,
1831
+ * content: [{ type: "paragraph", children: [{ text: "Hello" }] }],
1832
+ * },
1833
+ * });
1834
+ */
1761
1835
  createComment(options: {
1762
1836
  threadId: string;
1763
- commentId: string;
1837
+ commentId?: string;
1764
1838
  body: CommentBody;
1765
1839
  }): Promise<CommentData>;
1840
+ /**
1841
+ * Edits a comment.
1842
+ *
1843
+ * @example
1844
+ * await room.editComment({
1845
+ * threadId: "th_xxx",
1846
+ * commentId: "cm_xxx"
1847
+ * body: {
1848
+ * version: 1,
1849
+ * content: [{ type: "paragraph", children: [{ text: "Hello" }] }],
1850
+ * },
1851
+ * });
1852
+ */
1766
1853
  editComment(options: {
1767
1854
  threadId: string;
1768
1855
  commentId: string;
1769
1856
  body: CommentBody;
1770
1857
  }): Promise<CommentData>;
1858
+ /**
1859
+ * Deletes a comment.
1860
+ * If it is the last non-deleted comment, the thread also gets deleted.
1861
+ *
1862
+ * @example
1863
+ * await room.deleteComment({
1864
+ * threadId: "th_xxx",
1865
+ * commentId: "cm_xxx"
1866
+ * });
1867
+ */
1771
1868
  deleteComment(options: {
1772
1869
  threadId: string;
1773
1870
  commentId: string;
1774
1871
  }): Promise<void>;
1872
+ /**
1873
+ * Adds a reaction from a comment for the current user.
1874
+ *
1875
+ * @example
1876
+ * await room.addReaction({ threadId: "th_xxx", commentId: "cm_xxx", emoji: "👍" })
1877
+ */
1775
1878
  addReaction(options: {
1776
1879
  threadId: string;
1777
1880
  commentId: string;
1778
1881
  emoji: string;
1779
1882
  }): Promise<CommentUserReaction>;
1883
+ /**
1884
+ * Removes a reaction from a comment.
1885
+ *
1886
+ * @example
1887
+ * await room.removeReaction({ threadId: "th_xxx", commentId: "cm_xxx", emoji: "👍" })
1888
+ */
1780
1889
  removeReaction(options: {
1781
1890
  threadId: string;
1782
1891
  commentId: string;
@@ -1797,7 +1906,7 @@ declare type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extend
1797
1906
  * of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
1798
1907
  * will probably happen if you do.
1799
1908
  */
1800
- readonly [kInternal]: PrivateRoomApi<M>;
1909
+ readonly [kInternal]: PrivateRoomApi;
1801
1910
  /**
1802
1911
  * The id of the room.
1803
1912
  */
@@ -1991,7 +2100,25 @@ declare type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extend
1991
2100
  * connection. If the room is not connected yet, initiate it.
1992
2101
  */
1993
2102
  reconnect(): void;
1994
- };
2103
+ /**
2104
+ * Gets the user's notification settings for the current room.
2105
+ *
2106
+ * @example
2107
+ * const settings = await room.getNotificationSettings();
2108
+ */
2109
+ getNotificationSettings(): Promise<RoomNotificationSettings>;
2110
+ /**
2111
+ * Updates the user's notification settings for the current room.
2112
+ *
2113
+ * @example
2114
+ * await room.updateNotificationSettings({ threads: "replies_and_mentions" });
2115
+ */
2116
+ updateNotificationSettings(settings: Partial<RoomNotificationSettings>): Promise<RoomNotificationSettings>;
2117
+ /**
2118
+ * Internal use only. Signature might change in the future.
2119
+ */
2120
+ markInboxNotificationAsRead(notificationId: string): Promise<void>;
2121
+ } & CommentsApi<M>;
1995
2122
  /**
1996
2123
  * @private
1997
2124
  *
@@ -2000,7 +2127,7 @@ declare type Room<P extends JsonObject = DP, S extends LsonObject = DS, U extend
2000
2127
  * Liveblocks, NEVER USE ANY OF THESE METHODS DIRECTLY, because bad things
2001
2128
  * will probably happen if you do.
2002
2129
  */
2003
- declare type PrivateRoomApi<M extends BaseMetadata> = {
2130
+ declare type PrivateRoomApi = {
2004
2131
  presenceBuffer: Json | undefined;
2005
2132
  undoStack: readonly (readonly Readonly<HistoryOp<JsonObject>>[])[];
2006
2133
  nodeCount: number;
@@ -2013,12 +2140,6 @@ declare type PrivateRoomApi<M extends BaseMetadata> = {
2013
2140
  explicitClose(event: IWebSocketCloseEvent): void;
2014
2141
  rawSend(data: string): void;
2015
2142
  };
2016
- comments: CommentsApi<M>;
2017
- notifications: {
2018
- getRoomNotificationSettings(): Promise<RoomNotificationSettings>;
2019
- updateRoomNotificationSettings(settings: Partial<RoomNotificationSettings>): Promise<RoomNotificationSettings>;
2020
- markInboxNotificationAsRead(notificationId: string): Promise<void>;
2021
- };
2022
2143
  };
2023
2144
  declare type HistoryOp<P extends JsonObject> = Op | {
2024
2145
  readonly type: "presence";
@@ -2093,11 +2214,6 @@ declare type Store<T> = {
2093
2214
  */
2094
2215
  declare type NoInfr<A> = [A][A extends any ? 0 : never];
2095
2216
 
2096
- declare type GetInboxNotificationsOptions = {
2097
- limit?: number;
2098
- since?: Date;
2099
- };
2100
-
2101
2217
  declare type OptimisticUpdate<M extends BaseMetadata> = CreateThreadOptimisticUpdate<M> | DeleteThreadOptimisticUpdate | EditThreadMetadataOptimisticUpdate<M> | MarkThreadAsResolvedOptimisticUpdate | MarkThreadAsUnresolvedOptimisticUpdate | CreateCommentOptimisticUpdate | EditCommentOptimisticUpdate | DeleteCommentOptimisticUpdate | AddReactionOptimisticUpdate | RemoveReactionOptimisticUpdate | MarkInboxNotificationAsReadOptimisticUpdate | MarkAllInboxNotificationsAsReadOptimisticUpdate | DeleteInboxNotificationOptimisticUpdate | DeleteAllInboxNotificationsOptimisticUpdate | UpdateNotificationSettingsOptimisticUpdate;
2102
2218
  declare type CreateThreadOptimisticUpdate<M extends BaseMetadata> = {
2103
2219
  type: "create-thread";
@@ -2293,8 +2409,7 @@ declare type EnterOptions<P extends JsonObject = DP, S extends LsonObject = DS>
2293
2409
  * of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
2294
2410
  * will probably happen if you do.
2295
2411
  */
2296
- declare type PrivateClientApi<U extends BaseUserMeta, M extends BaseMetadata> = {
2297
- readonly notifications: NotificationsApi<M>;
2412
+ declare type PrivateClientApi<U extends BaseUserMeta> = {
2298
2413
  readonly currentUserIdStore: Store<string | null>;
2299
2414
  readonly resolveMentionSuggestions: ClientOptions<U>["resolveMentionSuggestions"];
2300
2415
  readonly cacheStore: CacheStore<BaseMetadata>;
@@ -2303,19 +2418,77 @@ declare type PrivateClientApi<U extends BaseUserMeta, M extends BaseMetadata> =
2303
2418
  readonly getRoomIds: () => string[];
2304
2419
  };
2305
2420
  declare type NotificationsApi<M extends BaseMetadata> = {
2306
- getInboxNotifications(options?: GetInboxNotificationsOptions): Promise<{
2421
+ /**
2422
+ * Gets the current user inbox notifications and their associated threads.
2423
+ * It also returns the request date that can be used for subsequent polling.
2424
+ *
2425
+ * @example
2426
+ * const {
2427
+ * inboxNotifications,
2428
+ * threads,
2429
+ * requestedAt
2430
+ * } = await client.getInboxNotifications();
2431
+ */
2432
+ getInboxNotifications(): Promise<{
2307
2433
  inboxNotifications: InboxNotificationData[];
2308
2434
  threads: ThreadData<M>[];
2309
- deletedThreads: ThreadDeleteInfo[];
2310
- deletedInboxNotifications: InboxNotificationDeleteInfo[];
2311
- meta: {
2312
- requestedAt: Date;
2435
+ requestedAt: Date;
2436
+ }>;
2437
+ /**
2438
+ * Gets the updated and deleted inbox notifications and their associated threads since the requested date.
2439
+ *
2440
+ * @example
2441
+ * const result = await client.getInboxNotifications();
2442
+ * // ... //
2443
+ * await client.getInboxNotificationsSince({ since: result.requestedAt }});
2444
+ */
2445
+ getInboxNotificationsSince(options: {
2446
+ since: Date;
2447
+ }): Promise<{
2448
+ inboxNotifications: {
2449
+ updated: InboxNotificationData[];
2450
+ deleted: InboxNotificationDeleteInfo[];
2451
+ };
2452
+ threads: {
2453
+ updated: ThreadData<M>[];
2454
+ deleted: ThreadDeleteInfo[];
2313
2455
  };
2456
+ requestedAt: Date;
2314
2457
  }>;
2458
+ /**
2459
+ * Gets the number of unread inbox notifications for the current user.
2460
+ *
2461
+ * @example
2462
+ * const count = await client.getUnreadInboxNotificationsCount();
2463
+ */
2315
2464
  getUnreadInboxNotificationsCount(): Promise<number>;
2465
+ /**
2466
+ * Marks all inbox notifications as read.
2467
+ *
2468
+ * @example
2469
+ * await client.markAllInboxNotificationsAsRead();
2470
+ */
2316
2471
  markAllInboxNotificationsAsRead(): Promise<void>;
2472
+ /**
2473
+ * Marks an inbox notification as read.
2474
+ *
2475
+ * @example
2476
+ * await client.markInboxNotificationAsRead("in_xxx");
2477
+ */
2317
2478
  markInboxNotificationAsRead(inboxNotificationId: string): Promise<void>;
2479
+ /**
2480
+ * Deletes all inbox notifications for the current user.
2481
+ *
2482
+ * @example
2483
+ * await client.deleteAllInboxNotifications();
2484
+ */
2318
2485
  deleteAllInboxNotifications(): Promise<void>;
2486
+ /**
2487
+ * Deletes an inbox notification for the current user.
2488
+ *
2489
+ * @example
2490
+ * await client.deleteInboxNotification("in_xxx");
2491
+ */
2319
2492
  deleteInboxNotification(inboxNotificationId: string): Promise<void>;
2320
2493
  };
2321
2494
  /**
@@ -2325,7 +2498,7 @@ declare type NotificationsApi<M extends BaseMetadata> = {
2325
2498
  * narrower.
2326
2499
  */
2327
2500
  declare type OpaqueClient = Client<BaseUserMeta>;
2328
- declare type Client<U extends BaseUserMeta = DU> = {
2501
+ declare type Client<U extends BaseUserMeta = DU, M extends BaseMetadata = DM> = {
2329
2502
  /**
2330
2503
  * Gets a room. Returns null if {@link Client.enter} has not been called previously.
2331
2504
  *
@@ -2358,8 +2531,8 @@ declare type Client<U extends BaseUserMeta = DU> = {
2358
2531
  * of Liveblocks, NEVER USE ANY OF THESE DIRECTLY, because bad things
2359
2532
  * will probably happen if you do.
2360
2533
  */
2361
- readonly [kInternal]: PrivateClientApi<U, BaseMetadata>;
2362
- };
2534
+ readonly [kInternal]: PrivateClientApi<U>;
2535
+ } & NotificationsApi<M>;
2363
2536
  declare type AuthEndpoint = string | ((room?: string) => Promise<CustomAuthenticationResult>);
2364
2537
  /**
2365
2538
  * The authentication endpoint that is called to ensure that the current user has access to a room.
@@ -2598,6 +2771,10 @@ declare function assert(condition: boolean, errmsg: string): asserts condition;
2598
2771
  */
2599
2772
  declare function nn<T>(value: T, errmsg?: string): NonNullable<T>;
2600
2773
 
2774
+ declare function createThreadId(): string;
2775
+ declare function createCommentId(): string;
2776
+ declare function createInboxNotificationId(): string;
2777
+
2601
2778
  /**
2602
2779
  * Displays a deprecation warning in the dev console. Only in dev mode, and
2603
2780
  * only once per message/key. In production, this is a no-op.
@@ -2643,6 +2820,8 @@ declare namespace fancyConsole {
2643
2820
  */
2644
2821
  declare const freeze: typeof Object.freeze;
2645
2822
 
2823
+ declare const nanoid: (t?: number) => string;
2824
+
2646
2825
  /**
2647
2826
  * Converts an object to a query string
2648
2827
  * Example:
@@ -2934,4 +3113,4 @@ declare type EnsureJson<T> = T extends Json ? T : T extends Array<infer I> ? (En
2934
3113
  [K in keyof T as EnsureJson<T[K]> extends never ? never : K]: EnsureJson<T[K]>;
2935
3114
  };
2936
3115
 
2937
- export { type AckOp, type ActivityData, type AsyncResult, type AsyncResultWithDataField, type BaseActivitiesData, type BaseAuthResult, type BaseMetadata, type BaseRoomInfo, type BaseUserMeta, type Brand, type BroadcastEventClientMsg, type BroadcastOptions, type BroadcastedEventServerMsg, type CacheState, type CacheStore, type Client, type ClientMsg, ClientMsgCode, type ClientOptions, type CommentBody, type CommentBodyBlockElement, type CommentBodyElement, type CommentBodyInlineElement, type CommentBodyLink, type CommentBodyLinkElementArgs, type CommentBodyMention, type CommentBodyMentionElementArgs, type CommentBodyParagraph, type CommentBodyParagraphElementArgs, type CommentBodyText, type CommentBodyTextElementArgs, type CommentData, type CommentDataPlain, type CommentReaction, type CommentUserReaction, type CommentUserReactionPlain, CommentsApiError, type CommentsEventServerMsg, CrdtType, type CreateListOp, type CreateMapOp, type CreateObjectOp, type CreateOp, type CreateRegisterOp, type CustomAuthenticationResult, type DAD, type DE, type DM, type DP, type DRI, type DS, type DU, type Delegates, type DeleteCrdtOp, type DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, type EnsureJson, type EnterOptions, type EventSource, type FetchStorageClientMsg, type FetchYDocClientMsg, type GetThreadsOptions, type History, type IUserInfo, type IWebSocket, type IWebSocketCloseEvent, type IWebSocketEvent, type IWebSocketInstance, type IWebSocketMessageEvent, type IdTuple, type Immutable, type InboxNotificationCustomData, type InboxNotificationCustomDataPlain, type InboxNotificationData, type InboxNotificationDataPlain, type InboxNotificationDeleteInfo, type InboxNotificationTextMentionData, type InboxNotificationTextMentionDataPlain, type InboxNotificationThreadData, type InboxNotificationThreadDataPlain, type InitialDocumentStateServerMsg, type Json, type JsonArray, type JsonObject, type JsonScalar, type KDAD, LiveList, type LiveListUpdate, LiveMap, type LiveMapUpdate, type LiveNode, LiveObject, type LiveObjectUpdate, type LiveStructure, LiveblocksError, type LostConnectionEvent, type Lson, type LsonObject, type NoInfr, type NodeMap, NotificationsApiError, type Op, OpCode, type OpaqueClient, type OpaqueRoom, type OptionalPromise, type OptionalTupleUnless, type OthersEvent, type ParentToChildNodeMap, type PartialUnless, type Patchable, type PlainLson, type PlainLsonFields, type PlainLsonList, type PlainLsonMap, type PlainLsonObject, type PrivateClientApi, type PrivateRoomApi, type QueryMetadata, type RejectedStorageOpServerMsg, type Resolve, type ResolveMentionSuggestionsArgs, type ResolveRoomsInfoArgs, type ResolveUsersArgs, type Room, type RoomEventMessage, type RoomNotificationSettings, type RoomStateServerMsg, type SerializedChild, type SerializedCrdt, type SerializedList, type SerializedMap, type SerializedObject, type SerializedRegister, type SerializedRootObject, type ServerMsg, ServerMsgCode, type SetParentKeyOp, type Status, type StorageStatus, type StorageUpdate, type Store, type StringifyCommentBodyElements, type StringifyCommentBodyOptions, type ThreadData, type ThreadDataPlain, type ThreadDeleteInfo, type ToImmutable, type ToJson, type UnsubscribeCallback, type UpdateObjectOp, type UpdatePresenceClientMsg, type UpdatePresenceServerMsg, type UpdateStorageClientMsg, type UpdateStorageServerMsg, type UpdateYDocClientMsg, type User, type UserJoinServerMsg, type UserLeftServerMsg, WebsocketCloseCodes, type YDocUpdateServerMsg, ackOp, addReaction, applyOptimisticUpdates, asPos, assert, assertNever, b64decode, cloneLson, fancyConsole as console, convertToCommentData, convertToCommentUserReaction, convertToInboxNotificationData, convertToThreadData, createClient, deleteComment, deprecate, deprecateIf, detectDupes, errorIf, freeze, getMentionedIdsFromCommentBody, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, kInternal, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, memoizeOnSuccess, nn, objectToQuery, patchLiveObjectKey, raise, removeReaction, shallow, stringify, stringifyCommentBody, throwUsageError, toPlainLson, tryParseJson, upsertComment, wait, withTimeout };
3116
+ export { type AckOp, type ActivityData, type AsyncResult, type AsyncResultWithDataField, type BaseActivitiesData, type BaseAuthResult, type BaseMetadata, type BaseRoomInfo, type BaseUserMeta, type Brand, type BroadcastEventClientMsg, type BroadcastOptions, type BroadcastedEventServerMsg, type CacheState, type CacheStore, type Client, type ClientMsg, ClientMsgCode, type ClientOptions, type CommentBody, type CommentBodyBlockElement, type CommentBodyElement, type CommentBodyInlineElement, type CommentBodyLink, type CommentBodyLinkElementArgs, type CommentBodyMention, type CommentBodyMentionElementArgs, type CommentBodyParagraph, type CommentBodyParagraphElementArgs, type CommentBodyText, type CommentBodyTextElementArgs, type CommentData, type CommentDataPlain, type CommentReaction, type CommentUserReaction, type CommentUserReactionPlain, CommentsApiError, type CommentsEventServerMsg, CrdtType, type CreateListOp, type CreateMapOp, type CreateObjectOp, type CreateOp, type CreateRegisterOp, type CustomAuthenticationResult, type DAD, type DE, type DM, type DP, type DRI, type DS, type DU, type Delegates, type DeleteCrdtOp, type DeleteObjectKeyOp, DevToolsTreeNode as DevTools, protocol as DevToolsMsg, type EnsureJson, type EnterOptions, type EventSource, type FetchStorageClientMsg, type FetchYDocClientMsg, type GetThreadsOptions, type History, type IUserInfo, type IWebSocket, type IWebSocketCloseEvent, type IWebSocketEvent, type IWebSocketInstance, type IWebSocketMessageEvent, type IdTuple, type Immutable, type InboxNotificationCustomData, type InboxNotificationCustomDataPlain, type InboxNotificationData, type InboxNotificationDataPlain, type InboxNotificationDeleteInfo, type InboxNotificationTextMentionData, type InboxNotificationTextMentionDataPlain, type InboxNotificationThreadData, type InboxNotificationThreadDataPlain, type InitialDocumentStateServerMsg, type Json, type JsonArray, type JsonObject, type JsonScalar, type KDAD, LiveList, type LiveListUpdate, LiveMap, type LiveMapUpdate, type LiveNode, LiveObject, type LiveObjectUpdate, type LiveStructure, LiveblocksError, type LostConnectionEvent, type Lson, type LsonObject, type NoInfr, type NodeMap, NotificationsApiError, type Op, OpCode, type OpaqueClient, type OpaqueRoom, type OptionalPromise, type OptionalTupleUnless, type OthersEvent, type ParentToChildNodeMap, type PartialUnless, type Patchable, type PlainLson, type PlainLsonFields, type PlainLsonList, type PlainLsonMap, type PlainLsonObject, type PrivateClientApi, type PrivateRoomApi, type QueryMetadata, type RejectedStorageOpServerMsg, type Resolve, type ResolveMentionSuggestionsArgs, type ResolveRoomsInfoArgs, type ResolveUsersArgs, type Room, type RoomEventMessage, type RoomNotificationSettings, type RoomStateServerMsg, type SerializedChild, type SerializedCrdt, type SerializedList, type SerializedMap, type SerializedObject, type SerializedRegister, type SerializedRootObject, type ServerMsg, ServerMsgCode, type SetParentKeyOp, type Status, type StorageStatus, type StorageUpdate, type Store, type StringifyCommentBodyElements, type StringifyCommentBodyOptions, type ThreadData, type ThreadDataPlain, type ThreadDeleteInfo, type ToImmutable, type ToJson, type UnsubscribeCallback, type UpdateObjectOp, type UpdatePresenceClientMsg, type UpdatePresenceServerMsg, type UpdateStorageClientMsg, type UpdateStorageServerMsg, type UpdateYDocClientMsg, type User, type UserJoinServerMsg, type UserLeftServerMsg, WebsocketCloseCodes, type YDocUpdateServerMsg, ackOp, addReaction, applyOptimisticUpdates, asPos, assert, assertNever, b64decode, cloneLson, fancyConsole as console, convertToCommentData, convertToCommentUserReaction, convertToInboxNotificationData, convertToThreadData, createClient, createCommentId, createInboxNotificationId, createThreadId, deleteComment, deprecate, deprecateIf, detectDupes, errorIf, freeze, getMentionedIdsFromCommentBody, isChildCrdt, isJsonArray, isJsonObject, isJsonScalar, isLiveNode, isPlainObject, isRootCrdt, kInternal, legacy_patchImmutableObject, lsonToJson, makeEventSource, makePoller, makePosition, memoizeOnSuccess, nanoid, nn, objectToQuery, patchLiveObjectKey, raise, removeReaction, shallow, stringify, stringifyCommentBody, throwUsageError, toPlainLson, tryParseJson, upsertComment, wait, withTimeout };