import { TreeViewCancellableEvent, TreeViewItemId } from "../../../models/index.mjs";
type TreeViewLabelMap = {
  [itemId: string]: string;
};
export declare class TreeViewKeyboardNavigationPlugin {
  private store;
  private labelMap;
  private typeaheadQuery;
  constructor(store: any);
  private canToggleItemSelection;
  private canToggleItemExpansion;
  private getFirstItemMatchingTypeaheadQuery;
  /**
   * Updates the `labelMap` to add/remove the first character of some item's labels.
   * This map is used to navigate the tree using type-ahead search.
   * This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
   * @param {(map: TreeViewLabelMap) => TreeViewLabelMap} updater The function to update the map.
   */
  updateLabelMap: (callback: (labelMap: TreeViewLabelMap) => TreeViewLabelMap) => void;
  /**
   * Callback fired when a key is pressed on an item.
   * Handles all the keyboard navigation logic.
   * @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
   * @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
   */
  handleItemKeyDown: (event: React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent, itemId: TreeViewItemId) => Promise<void>;
}
export {};