import type { TreeCheckboxSelectionKeys, TreeNodeData, TreeSelectionKeys, UseTreeProps } from '@primereact/types/headless/tree'; import * as React from 'react'; type SelectionSetter = (next: [TreeSelectionKeys | TreeCheckboxSelectionKeys, { originalEvent: React.SyntheticEvent; value: TreeSelectionKeys | TreeCheckboxSelectionKeys; }]) => void; export interface UseTreeSelectionDeps { props: UseTreeProps; selectionKeysState: TreeSelectionKeys | TreeCheckboxSelectionKeys | undefined; setSelectionKeysState: SelectionSetter; getNodes: () => TreeNodeData[]; getVisibleKeys: () => string[]; } /** * Selection state for single / multiple / checkbox modes, including the * up/down cascade used by checkbox tri-state. */ export declare function useTreeSelection({ props, selectionKeysState, setSelectionKeysState, getNodes, getVisibleKeys }: UseTreeSelectionDeps): { isNodeSelected: (node: TreeNodeData) => boolean; onNodeClick: (event: React.MouseEvent | React.KeyboardEvent, node: TreeNodeData, nodeTouched?: boolean) => void; onCheckboxChange: (event: React.SyntheticEvent, node: TreeNodeData) => void; onClick: (event: React.MouseEvent | React.KeyboardEvent, node: TreeNodeData, nodeTouched?: boolean) => void; setSelectionKeys: (keys: TreeSelectionKeys | TreeCheckboxSelectionKeys, event?: React.SyntheticEvent) => void; isSelected: (key: string) => boolean; isPartiallySelected: (key: string) => boolean; isAllSelected: () => boolean; isSomeSelected: () => boolean; toggleSelection: (event: React.SyntheticEvent, key: string, mode: "checkbox" | "radio" | "single") => void; toggleAll: (event: React.SyntheticEvent) => void; }; export {};