import React from 'react'; import type { NodeState } from '../utils/treeOperations'; export interface TreeNodeProps { /** Internal NodeState from treeOperations */ node: NodeState; /** Indentation level (0 = root) */ level: number; /** Whether the node is currently expanded */ expanded: boolean; /** Whether the node has children */ hasChildren: boolean; /** Read-only mode — suppresses toggle, allows chevron */ readOnly: boolean; /** Whether to show child count badge */ showBadge: boolean; /** Number of direct children */ childCount: number; /** Callback when checkbox is toggled */ onToggle: (nodeId: string) => void; /** Callback when expand/collapse chevron is clicked */ onExpand: (nodeId: string) => void; /** Tab index for roving tabindex pattern */ tabIndex: number; /** Keyboard event handler */ onKeyDown: (e: React.KeyboardEvent, nodeId: string) => void; } /** * TreeNode — Interaction Mode Layer. * * Renders a single node row: indent -> chevron -> checkbox -> icon -> label -> badge. * Handles click events and applies all ARIA attributes for accessibility. * * This component MUST NOT import useTree or Tree — it only receives * data and callbacks via props (architecture.md Section 2.1). */ declare function TreeNodeInner(props: TreeNodeProps): React.JSX.Element; /** * Memoized TreeNode with custom comparator. * Only re-renders when state-relevant props change: * checked, disabled, indeterminate, expanded, tabIndex. */ export declare const TreeNode: typeof TreeNodeInner; export {}; //# sourceMappingURL=TreeNode.d.ts.map