import { useLayoutEffect as useLayoutEffect$1 } from 'react';
export { g as getUmbrellaStoreForClient, a as useAddRoomCommentReaction, u as useClientOrNull, b as useCreateRoomComment, c as useCreateRoomThread, d as useCreateTextMention, e as useDeleteRoomComment, f as useDeleteRoomThread, h as useDeleteTextMention, i as useEditRoomComment, j as useEditRoomThreadMetadata, k as useMarkRoomThreadAsRead, l as useMarkRoomThreadAsResolved, m as useMarkRoomThreadAsUnresolved, n as useMentionSuggestionsCache, o as useRemoveRoomCommentReaction, p as useReportTextEditor, q as useResolveMentionSuggestions, r as useRoomAttachmentUrl, s as useRoomPermissions, t as useYjsProvider } from './room-CqmA66N2.js';
import { ISignal, SyncSource } from '@liveblocks/core';
import 'react/jsx-runtime';
import '@liveblocks/client';

declare const useLayoutEffect: typeof useLayoutEffect$1;

/**
 * @private For internal use only. Do not rely on this hook.
 *
 * Simplistic debounced search, we don't need to worry too much about deduping
 * and race conditions as there can only be one search at a time.
 */
declare function useMentionSuggestions(roomId: string, search?: string): string[] | undefined;

declare function useSignal<T>(signal: ISignal<T>): T;
declare function useSignal<T, V>(signal: ISignal<T>, selector: (value: T) => V, isEqual?: (a: V, b: V) => boolean): V;

declare function useSyncExternalStoreWithSelector<Snapshot, Selection>(subscribe: (callback: () => void) => () => void, getSnapshot: () => Snapshot, getServerSnapshot: void | null | (() => Snapshot), selector: (snapshot: Snapshot) => Selection, isEqual?: (a: Selection, b: Selection) => boolean): Selection;

/**
 * @private For internal use only. Do not rely on this hook.
 */
declare function useSyncSource(): SyncSource | undefined;

export { useLayoutEffect, useMentionSuggestions, useSignal, useSyncExternalStoreWithSelector, useSyncSource };
