import { KeysType, NavigationActionFn, NavigationActionFnArgs, NodeId, TreeNavigationContextState, TreeNode, TreeNodeMapper, TreeNodesMap } from './types';
export declare function flattenTree<N>(tree: Array<N>, map: TreeNodeMapper<N>): TreeNode[];
export declare function getFocusableNodes(nodes: TreeNode[]): TreeNode[];
export declare function getNodesMap(nodes: TreeNode[]): TreeNodesMap;
export declare function setNodeState(id: NodeId, patch: Partial<TreeNode>, nodes: TreeNode[]): TreeNode[];
export declare function setAllNodesState(patch: Partial<TreeNode>, nodes: TreeNode[]): TreeNode[];
export type GetKeyActionFnType = (key: KeysType, node: TreeNode, context?: TreeNavigationContextState) => NavigationActionFn[] | NavigationActionFn | null;
export declare const getKeyActionFnDefault: GetKeyActionFnType;
export declare const getNavigationFn: GetKeyActionFnType;
export declare const getSelectionFn: GetKeyActionFnType;
export declare const getKeyActionFnMenu: GetKeyActionFnType;
export declare const getKeyActionFnSearch: GetKeyActionFnType;
export declare function moveFocusToChild({ node, context }: NavigationActionFnArgs): void;
export declare function expandNode({ node, context, onToggleExpanded, }: NavigationActionFnArgs): void;
export declare function collapseNode({ node, context, onToggleExpanded, }: NavigationActionFnArgs): void;
export declare function moveFocusToParent({ node, context }: NavigationActionFnArgs): void;
export declare function moveFocusToNextNode({ node, context }: NavigationActionFnArgs): void;
export declare function moveFocusToNextMenuNode({ node, context, }: NavigationActionFnArgs): void;
export declare function moveFocusToPrevNode({ node, context }: NavigationActionFnArgs): void;
export declare function moveFocusToPrevMenuNode({ node, context, }: NavigationActionFnArgs): void;
export declare function moveFocusToFirstNode({ context }: NavigationActionFnArgs): void;
export declare function moveFocusToFirstMenuNode({ context, node, }: NavigationActionFnArgs): void;
export declare function moveFocusToLastNode({ context }: NavigationActionFnArgs): void;
export declare function moveFocusToLastMenuNode({ context, node, }: NavigationActionFnArgs): void;
export declare function toggleSelect({ onToggleSelected, isSelected, }: NavigationActionFnArgs): void;
export declare function onCustomButtonPress({ onCustomButtonKeyDown, button, }: NavigationActionFnArgs): void | undefined;
export declare function isNodeVisible(node: TreeNode, nodesMap: TreeNodesMap): boolean;
export declare function getNextNode(node: TreeNode, nodes: TreeNode[], nodesMap: TreeNodesMap): TreeNode | null;
export declare function getNextMenuNode(node: TreeNode, nodes: TreeNode[]): TreeNode;
export declare function getPrevNode(node: TreeNode, nodes: Array<TreeNode>, nodesMap: TreeNodesMap): TreeNode | null;
export declare function getPrevMenuNode(node: TreeNode, nodes: Array<TreeNode>): TreeNode;
export declare function getSetSize(node: TreeNode, nodes: TreeNode[], nodesMap: TreeNodesMap): number;
export declare function getPositionInSet(node: TreeNode, nodes: TreeNode[], nodesMap: TreeNodesMap): number;
export declare function getDummyNode(id: NodeId): TreeNode;
