import { CompleteObj, FormatedSelections, ItemId, MenuGroup, MenuGroupMap, SelectedItemType } from "../types";
/**
 * convert menuGroup tree to map
 * for each node access without need to store the node details redundantly
 * and simplify the management complexity
 *
 * downward propogation through childIds
 * upward propogation through parentId
 */
export declare const menuGroupTreeToMap: (menuGroup: MenuGroup) => MenuGroupMap;
export declare const getConnectedItemByDirection: (obj: MenuGroupMap, isForward: boolean | undefined, nodeId: ItemId, selectedItems: SelectedItemType, isSingleSelection?: boolean) => SelectedItemType;
export declare const getConnectedItems: (obj: MenuGroupMap, nodeId: ItemId, selectedItems: SelectedItemType, isSingleSelection?: boolean) => SelectedItemType;
export declare const addItemSelection: (menuGroupMap: MenuGroupMap, selectedItems: SelectedItemType, itemId: ItemId) => SelectedItemType;
/**
 *
 * cascading item removal and highlights the next available selection
 */
export declare const cascadeSelectionRemovalWithProps: (menuGroupMap: MenuGroupMap, selectedItems: SelectedItemType, itemId: ItemId, additionalProps?: {
    isParentUpdateRequired?: boolean;
    getNextAvailableSelection?: boolean;
    isMultiSelection?: boolean;
}) => {
    newSelectedItems: SelectedItemType;
    newChildId?: ItemId;
};
export declare const initPreSelections: (selections: FormatedSelections | null) => {
    newSelectedItems: SelectedItemType;
    newActiveItems: {};
} | {
    newSelectedItems: SelectedItemType;
    newActiveItems?: undefined;
};
/**
 * Cascading item removal(current+children)
 * Removes the current selection and its children selections
 */
export declare const cascadeSelectionRemoval: (obj: MenuGroupMap, selectedItems: SelectedItemType, nodeId: ItemId) => SelectedItemType;
export declare function getAllLeafNodes(treeObj: MenuGroup, index: number): CompleteObj[];
