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<ThreadMetadata>;
    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[];
}
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<CollaborationProviderProps>) => import("react/jsx-runtime").JSX.Element;
export declare const CollaborationRoomProvider: ({ children, roomId, autoConnect, }: PropsWithChildren<CollaborationRoomProviderProps>) => import("react/jsx-runtime").JSX.Element;
export {};
