import { TreeSelectFieldNode } from '../types';
import { VisibleNode } from './types';
/**
 * Props for the TreeRow component.
 * @property {VisibleNode} visible - The visible node data including depth, expand state, and branch info.
 * @property {"checked" | "unchecked" | "indeterminate"} checkState - The checkbox state for this row.
 * @property {Record<string, unknown>} itemProps - ARIA/accessibility props from getTreeItemProps.
 * @property {boolean} [branchesSelectable] - When true, branch nodes can be selected. Defaults to true.
 * @property {boolean} [leavesSelectable] - When true, leaf nodes can be selected. Defaults to true.
 * @property {boolean} [emptyBranchesSelectable] - When true, empty branches (children: []) can be selected. Defaults to true.
 * @property {boolean} [isActive] - When true, applies a highlight background for keyboard focus.
 * @property {(id: string | number) => void} onToggleNode - Callback to toggle selection of the node.
 * @property {(id: string | number) => void} onToggleExpand - Callback to toggle expansion of a branch node.
 * @property {(node: TreeSelectFieldNode) => void} [onLoadChildren] - Callback to trigger lazy loading of children.
 * @property {number} depth - Depth of the node in the tree, used to calculate indentation.
 */
export type TreeRowProps = {
    visible: VisibleNode;
    checkState: "checked" | "unchecked" | "indeterminate" | "loading";
    itemProps: Record<string, unknown>;
    branchesSelectable?: boolean;
    leavesSelectable?: boolean;
    emptyBranchesSelectable?: boolean;
    readOnly?: boolean;
    isActive?: boolean;
    onToggleNode: (id: string | number) => void;
    onToggleExpand: (id: string | number) => void;
    onHover?: (id: string | number) => void;
    onLoadChildren?: (node: TreeSelectFieldNode) => void;
    depth: number;
};
/**
 * TreeRow renders a single row in the tree dropdown.
 *
 * Features:
 * - Depth-based indentation via inline paddingInlineStart
 * - Expand/collapse icon using Icon component with keyboard_arrow_right/down icons
 * - Spinning icon animation for lazy-loading branch nodes
 * - Checkbox in multi-select mode, hidden in single-select mode
 * - Rich content support via node.content (title, description, chips, avatar, icon)
 * - Label text with overflow ellipsis
 * - Disabled state with reduced opacity and default cursor
 * - Active (keyboard focus) state with highlight background
 * - Full ARIA semantics via spread itemProps
 *
 * @example
 * <TreeRow
 *   visible={visibleNode}
 *   checkState={getCheckState(visibleNode.node.id)}
 *   itemProps={getTreeItemProps(visibleNode.node.id)}
 *   onToggleNode={toggleNode}
 *   onToggleExpand={toggleExpand}
 *   depth={visibleNode.depth}
 * />
 */
export declare function TreeRow({ visible, checkState, itemProps, branchesSelectable, leavesSelectable, emptyBranchesSelectable, readOnly, isActive, onToggleNode, onToggleExpand, onHover, onLoadChildren, depth, }: TreeRowProps): import("react/jsx-runtime").JSX.Element;
