import { PropsWithChildren } from 'react'; import { ThreadData } from '@liveblocks/client'; import { ThreadMetadata } from './CollaborationTypes'; export interface RoomEntityThreadsValue { isLoading: boolean; threads: ThreadData[]; } /** * Threads for a single dashboard entity from **room-scoped** `useThreads` inside * `dashboard_${companyId}` — not from app-level `ThreadsContext` / `useFilteredThreads`. */ export declare function useRoomEntityThreads(): RoomEntityThreadsValue; /** * Room-scoped `useThreads` (must run under `RoomProvider` for `dashboard_${companyId}`). * Pass any `Partial` supported by Liveblocks for `query.metadata` — e.g. * detail pages include `entityId`; list drawer may omit `entityId` until a row is selected. * * **Do not** mount one subscription per list row — use `useFilteredThreads` for row * badges. Memoize `filter` when its fields are stable to avoid redundant fetches. */ export declare function useRoomEntityThreadsQuery({ filter, }: { filter: Partial; }): RoomEntityThreadsValue; export type RoomEntityThreadsGateProps = PropsWithChildren<{ filter: Partial; roomId: string; }>; /** * Wraps children in `RoomProvider` + room `useThreads` for `filter` and exposes results * via `useRoomEntityThreads()`. Callers that should not connect should not mount this gate * (e.g. early-return and render content without it). */ export declare function RoomEntityThreadsGate({ roomId, filter, children, }: RoomEntityThreadsGateProps): import("react/jsx-runtime").JSX.Element;