import { R as RegisterAiKnowledgeProps, y as RegisterAiToolProps } from './room-DG1r0yeF.cjs';
export { A as AiChatStatus, C as ClientContext, L as LiveblocksProvider, M as MutationContext, z as RoomContext, _ as RoomProvider, S as SendAiMessageOptions, U as UseSendAiMessageOptions, B as UseThreadsOptions, D as createLiveblocksContext, E as createRoomContext, F as useAddReaction, H as useAiChat, I as useAiChatMessages, J as useAiChatStatus, K as useAiChats, N as useAttachmentUrl, O as useBroadcastEvent, P as useCanRedo, Q as useCanUndo, T as useClient, V as useCreateAiChat, W as useCreateComment, X as useCreateFeed, Y as useCreateFeedMessage, Z as useCreateThread, $ as useDeleteAiChat, a0 as useDeleteAllInboxNotifications, a1 as useDeleteComment, a2 as useDeleteFeed, a3 as useDeleteFeedMessage, a4 as useDeleteInboxNotification, a5 as useDeleteThread, a6 as useEditComment, a7 as useEditCommentMetadata, a8 as useEditThreadMetadata, a9 as useErrorListener, aa as useEventListener, ab as useFeedMessages, ac as useFeeds, ad as useGroupInfo, ae as useHistory, af as useHistoryVersionData, ag as useHistoryVersions, ah as useInboxNotificationThread, ai as useInboxNotifications, aj as useIsInsideRoom, ak as useLostConnectionListener, al as useMarkAllInboxNotificationsAsRead, am as useMarkInboxNotificationAsRead, an as useMarkThreadAsRead, ao as useMarkThreadAsResolved, ap as useMarkThreadAsUnresolved, aq as useMutation, ar as useMyPresence, as as useNotificationSettings, at as useOther, au as useOthers, av as useOthersConnectionIds, aw as useOthersListener, ax as useOthersMapped, ay as useRedo, az as useRemoveReaction, aA as useRoom, aB as useRoomInfo, aC as useRoomSubscriptionSettings, aD as useSearchComments, aE as useSelf, aF as useSendAiMessage, aG as useStatus, aH as useStorage, aI as useStorageRoot, aJ as useSubscribeToThread, aK as useSyncStatus, aL as useThreadSubscription, aM as useThreads, aN as useUndo, aO as useUnreadInboxNotificationsCount, aP as useUnsubscribeFromThread, aQ as useUpdateFeedMessage, aR as useUpdateFeedMetadata, aS as useUpdateMyPresence, aT as useUpdateNotificationSettings, aU as useUpdateRoomSubscriptionSettings, aV as useUrlMetadata, aW as useUser, aX as useUserThreads_experimental } from './room-DG1r0yeF.cjs';
export { Json, JsonObject, isNotificationChannelEnabled, shallow } from '@liveblocks/client';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as react from 'react';
import { ReactNode } from 'react';
import '@liveblocks/core';

type Props = {
    fallback: ReactNode;
    children: (() => ReactNode | undefined) | ReactNode | undefined;
};
/**
 * Almost like a normal <Suspense> component, except that for server-side
 * renders, the fallback will be used.
 *
 * The child props will have to be provided in a function, i.e. change:
 *
 *   <Suspense fallback={<Loading />}>
 *     <MyRealComponent a={1} />
 *   </Suspense>
 *
 * To:
 *
 *   <ClientSideSuspense fallback={<Loading />}>
 *     <MyRealComponent a={1} />
 *   </ClientSideSuspense>
 *
 */
declare function ClientSideSuspense(props: Props): react_jsx_runtime.JSX.Element;

/**
 * Make knowledge about your application state available to any AI used in
 * a chat or a one-off request.
 *
 * For example:
 *
 *     <RegisterAiKnowledge
 *        description="The current mode of my application"
 *        value="dark" />
 *
 * Or scoped to a specific chat:
 *
 *     <RegisterAiKnowledge
 *        description="The current list of todos"
 *        value={todos}
 *        chatId="chat-1234" />
 *
 * By mounting this component, the AI will get access to this knwoledge.
 * By unmounting this component, the AI will no longer have access to it.
 * It can choose to use or ignore this knowledge in its responses.
 */
declare const RegisterAiKnowledge: react.NamedExoticComponent<RegisterAiKnowledgeProps>;
/**
 * Make a tool available to your AI chat or a one-off request.
 * A tool is a piece of functionality that the AI can call to perform an action
 * or look up information on the user's behalf.
 *
 * Also, tools are used to render custom UIs for tool invocations, which are
 * embedded inside the AI chat.
 *
 * For example:
 *
 *   <RegisterAiTool
 *     name="list-todos"
 *     tool={defineAiTool()({ ... })}
 *     />
 *
 * Or scoped to a specific chat:
 *
 *   <RegisterAiTool
 *     name="list-todos"
 *     tool={defineAiTool()({ ... })}
 *     chatId="chat-1234"
 *     />
 *
 * By mounting this component, the tool is made available.
 * By unmounting this component, the tool will no longer be available.
 */
declare const RegisterAiTool: react.NamedExoticComponent<RegisterAiToolProps>;

export { ClientSideSuspense, RegisterAiKnowledge, RegisterAiKnowledgeProps, RegisterAiTool, RegisterAiToolProps };
