import { type Dispatch, type SetStateAction } from "react";
import type { UiRefsTree, UiStateTreeItem, UiStaticTreeView } from "./types.js";
/**
 * @internal
 **/
export declare function makeItemId(treeViewId: string, path: number[]): string;
/**
 * @internal
 **/
export declare function getItemOnFocusedPath<T>(items: UiStaticTreeView<T>[], focusedPath: number[]): UiStaticTreeView<T> | undefined;
/**
 * @internal
 **/
export declare function getRefOnFocusedPath(items: UiRefsTree, focusedPath: number[]): HTMLDivElement | null | undefined;
type ItemsState = [
    Record<string, UiStateTreeItem>,
    Dispatch<SetStateAction<Record<string, UiStateTreeItem>>>
];
type GetItemState = (path: number[]) => [
    UiStateTreeItem,
    {
        toggle: (state: boolean) => void;
        toggleAll: (state: boolean) => void;
    }
];
/**
 * @internal
 **/
export declare function itemsState(state: ItemsState, defaultItem: UiStateTreeItem, opts: {
    expansionMode: "multiple" | "single";
}): GetItemState;
/**
 * @internal
 **/
export declare function findPath<T>(items: UiStaticTreeView<T>[], id: string | undefined, isFocusableItem: (item?: UiStaticTreeView<T>) => boolean): number[] | undefined;
export declare function getPrevPathIndex<T>(items: UiStaticTreeView<T>[], getState: ReturnType<typeof itemsState>, path: number[], isFocusableItem: (item?: UiStaticTreeView<T>) => boolean): number[];
export declare function getNextPathIndex<T>(items: UiStaticTreeView<T>[], getState: ReturnType<typeof itemsState>, path: number[], isFocusableItem: (item?: UiStaticTreeView<T>) => boolean): number[];
export declare function getParentPathIndex<T>(items: UiStaticTreeView<T>[], getState: ReturnType<typeof itemsState>, path: number[], isFocusableItem: (item?: UiStaticTreeView<T>) => boolean): number[];
export declare function convertPathToKey(path: number[]): string;
export declare function convertKeyToPath(key: string): number[];
export {};
//# sourceMappingURL=utils.d.ts.map