import { TreeViewValidItem } from "../../models/index.mjs";
import { TreeViewLabelEditingPlugin } from "../plugins/labelEditing/index.mjs";
import { MinimalTreeViewStore } from "../MinimalTreeViewStore/index.mjs";
import { RichTreeViewStoreParameters, RichTreeViewState } from "./RichTreeViewStore.types.mjs";
export declare class ExtendableRichTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined, State extends RichTreeViewState<R, Multiple> = RichTreeViewState<R, Multiple>, Parameters extends RichTreeViewStoreParameters<R, Multiple> = RichTreeViewStoreParameters<R, Multiple>> extends MinimalTreeViewStore<R, Multiple, State, Parameters> {
  labelEditing: TreeViewLabelEditingPlugin;
  /**
   * Mapper of the RichTreeViewStore.
   * Can be used by classes extending the RichTreeViewStore to create their own mapper.
   */
  static rawMapper: import("../index.mjs").TreeViewParametersToStateMapper<any, any, RichTreeViewState<any, any>, RichTreeViewStoreParameters<any, any>>;
  buildPublicAPI(): {
    setEditedItem: (itemId: import("../../index.mjs").TreeViewItemId | null) => void;
    updateItemLabel: (itemId: import("../../index.mjs").TreeViewItemId, label: string) => void;
    setItemSelection: ({
      itemId,
      event,
      keepExistingSelection,
      shouldBeSelected
    }: {
      itemId: string;
      event?: React.SyntheticEvent | null;
      shouldBeSelected?: boolean;
      keepExistingSelection?: boolean;
    }) => void;
    isItemExpanded: (itemId: import("../../index.mjs").TreeViewItemId) => boolean;
    setItemExpansion: ({
      itemId,
      event,
      shouldBeExpanded
    }: {
      itemId: import("../../index.mjs").TreeViewItemId;
      event?: React.SyntheticEvent | null;
      shouldBeExpanded?: boolean;
    }) => void;
    focusItem: (event: React.SyntheticEvent | null, itemId: import("../../index.mjs").TreeViewItemId) => void;
    getItem: (itemId: import("../../index.mjs").TreeViewItemId) => R;
    getItemDOMElement: (itemId: import("../../index.mjs").TreeViewItemId) => HTMLElement | null;
    getItemOrderedChildrenIds: (itemId: import("../../index.mjs").TreeViewItemId | null) => import("../../index.mjs").TreeViewItemId[];
    getItemTree: () => R[];
    getParentId: (itemId: import("../../index.mjs").TreeViewItemId) => import("../../index.mjs").TreeViewItemId | null;
    setIsItemDisabled: ({
      itemId,
      shouldBeDisabled
    }: {
      itemId: import("../../index.mjs").TreeViewItemId;
      shouldBeDisabled?: boolean;
    }) => void;
  };
}
export declare class RichTreeViewStore<R extends TreeViewValidItem<R>, Multiple extends boolean | undefined> extends ExtendableRichTreeViewStore<R, Multiple, RichTreeViewState<R, Multiple>, RichTreeViewStoreParameters<R, Multiple>> {
  constructor(parameters: RichTreeViewStoreParameters<R, Multiple>);
}