import { TreeViewProps } from '../components/TreeView/TreeView.types'; import { UseTreeViewControlledStateReturn } from '../hooks/useTreeViewControlledState/useTreeViewControlledState.types'; import { UseTreeViewFocusReturn } from '../hooks/useTreeViewFocus/useTreeViewFocus.types'; import { UseTreeViewExpansionReturn } from '../hooks/useTreeViewExpansion/useTreeViewExpansion.types'; import { UseTreeViewItemsReturn } from '../hooks/useTreeViewItems/useTreeViewItems.types'; import { UseTreeViewKeyboardNavigationReturn } from '../hooks/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types'; import { UseTreeViewSelectionReturn } from '../hooks/useTreeViewSelection/useTreeViewSelection.types'; import { UseTreeViewLazyLoadingReturn } from '../hooks/useTreeViewLazyLoading'; export type TreeViewSelectionItems = string[] | string | null; export interface UseTreeViewCoreParameter extends TreeViewProps { rootRef?: React.Ref; controlledState: UseTreeViewControlledStateReturn; } export interface TreeViewAPI { itemsAPI: UseTreeViewItemsReturn; expansionAPI: UseTreeViewExpansionReturn; selectionAPI: UseTreeViewSelectionReturn; focusAPI: UseTreeViewFocusReturn; keyboardNavigationAPI: UseTreeViewKeyboardNavigationReturn; lazyLoadingAPI?: UseTreeViewLazyLoadingReturn; } export interface TreeViewContextValue extends Pick { api: TreeViewAPI; treeId: string; }