import { PropsWithChildren } from 'react'; import { AuthParams, ID, LoggedInUser, User } from '@zeniai/client-epic-state'; import { ThreadMetadata } from './CollaborationTypes'; import { ThreadsIndexStrategy } from './ThreadsProvider'; export interface CompanyNameWithId { companyId: ID; companyName: string; tenantId?: ID; } interface CollaborationRoomProviderProps { autoConnect: boolean; roomId: ID; } export interface CollaborationProviderProps extends CollaborationRoomProviderProps { authParams: AuthParams; authUrlEndPoint: string; commentingUsersUrlEndPoint: string; companies: CompanyNameWithId[]; fetchZeniUsers: boolean; filter: Partial; users: User[]; withRoomProvider: boolean; withThreadsProvider: boolean; isZeniUser?: boolean; loggedInUser?: LoggedInUser; /** * How `ThreadsProvider` loads the thread index. Dashboard (`withRoomProvider`) uses * room-scoped `useThreads`; cockpit (no room) uses `useUserThreads_experimental`. * When omitted, this is derived from `withRoomProvider`. */ threadsIndexStrategy?: ThreadsIndexStrategy; } interface CollaborationInfoContextType { allUsers: User[]; /** * Pre-warm the mention picker / `resolveUsers` cache with the given * Zeni-side user IDs (e.g. thread participants + task assignees). * Without this, customers replying to a Zeni teammate's comment would * see "Zeni Team" (the fallback) until the customer-side * `commenting-users` fetch returned — which by design excludes internal * users. Priming fills the gap by fetching the specific IDs we know * are in play. Idempotent — already-cached IDs are skipped. */ primeCommentingUsers: (userIds: ID[]) => Promise; } export declare const useCollaborationInfoContext: () => CollaborationInfoContextType; export declare const CollaborationProvider: ({ children, roomId, authParams, authUrlEndPoint, commentingUsersUrlEndPoint, fetchZeniUsers, filter, users, companies, autoConnect, withThreadsProvider, withRoomProvider, threadsIndexStrategy: threadsIndexStrategyProp, loggedInUser, isZeniUser, }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element; export declare const CollaborationRoomProvider: ({ children, roomId, autoConnect, }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element; export {};