import { ThreadData } from '@liveblocks/client';
import { ID, ReportID } from '@zeniai/client-epic-state';
import { ReportTreeNode } from '../../reportTree/reportTreeTypes';
import { ThreadMetadata } from './CollaborationTypes';
import { RequestToOpenThreadType } from './ThreadsProvider';
export interface ReportThreadNavigationOptions {
    allThreads: ThreadData<ThreadMetadata>[];
    requestToOpenThread: RequestToOpenThreadType | null;
    nodeCollapseState?: Record<string, boolean>;
    reportTreeRootNodes?: ReportTreeNode[];
    selectedReport?: ReportID;
    setOpenThread: (id: ID | null) => void;
    setRequestToOpenThread: (data: RequestToOpenThreadType | null) => void;
    /** Bails out when a thread targets a reportId the host page can't render. */
    isReportIdSupported?: (reportId: ReportID) => boolean;
    onExpandNode?: (reportId: ReportID, nodeId: ID, isOpen: boolean) => void;
    onReportSelectionChanged?: (reportId: ReportID) => void;
    scrollToNode?: (nodeId: ID) => void;
}
/**
 * Shared hook that orchestrates navigating to a report cell comment:
 *   1. Switch report tab if needed (P&L / BS / CF / Classes)
 *   2. Expand collapsed ancestor rows in the tree
 *   3. Scroll the virtualized tree (via DOM polling)
 *   4. Scroll horizontally to the target column
 *   5. Open the thread popover once the cell is visible
 */
export declare function useReportThreadNavigation({ requestToOpenThread, setRequestToOpenThread, setOpenThread, allThreads, selectedReport, onReportSelectionChanged, reportTreeRootNodes, nodeCollapseState, isReportIdSupported, onExpandNode, scrollToNode, }: ReportThreadNavigationOptions): void;
