import { type ComponentType, type KeyboardEvent, type MouseEvent, type MutableRefObject } from "react";
import type { IUiTreeviewItemProps, LevelTypesUnion, UiRefsTree, UiStaticTreeView } from "./types.js";
import { type itemsState } from "./utils.js";
/**
 * @internal
 */
interface IUITreeviewItemProps<Levels extends [], Level> {
    treeViewId: string;
    path: number[];
    item: UiStaticTreeView<Level | LevelTypesUnion<Levels>>;
    getState: ReturnType<typeof itemsState>;
    focusedItem?: UiStaticTreeView<Level>;
    selectedItemId?: string;
    itemDataTestId?: string;
    isCompact?: boolean;
    isDisabledFocusable: boolean;
    onSelect: (event: MouseEvent | KeyboardEvent, path: number[], item: UiStaticTreeView<Level | LevelTypesUnion<Levels>>) => void;
    onHover: (path: number[]) => void;
    ItemComponent: ComponentType<IUiTreeviewItemProps<Level | LevelTypesUnion<Levels>>>;
    itemsRef: MutableRefObject<UiRefsTree>;
}
/**
 * @internal
 */
export declare function UITreeviewItem<Levels extends [], Level>(props: IUITreeviewItemProps<Levels, Level>): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=UITreeviewItem.d.ts.map