import { type PathProvidedItem, type PathRoot } from "@1771technologies/lytenyte-shared";
import { type JSX } from "react";
import { type TreeVirtualItem } from "./make-virtual-tree.js";
export interface VirtualizedTreeViewPathsArgs<T extends PathProvidedItem> {
    readonly itemHeight: number;
    readonly expansions: Record<string, boolean>;
    readonly expansionDefault?: boolean;
    readonly paths: T[];
    readonly nonAdjacentPathTrees?: boolean;
}
export interface TreeReturn<T extends PathProvidedItem> {
    readonly ref: (h: HTMLElement | null) => void;
    readonly virtualTree: TreeVirtualItem<T>[];
    readonly spacer: JSX.Element;
    readonly rootProps: {
        readonly getAllIds: () => Set<string>;
        readonly getIdsBetweenNodes: (h: HTMLElement, r: HTMLElement) => string[];
        readonly onFocusChange: (h: HTMLElement | null) => void;
        readonly root: PathRoot<T>;
    };
}
export declare function useVirtualizedTree<T extends PathProvidedItem>({ itemHeight, expansions, expansionDefault, nonAdjacentPathTrees, paths, }: VirtualizedTreeViewPathsArgs<T>): TreeReturn<T>;
