import type { SelectionPropagation, TreeNode } from "src/types/treeView.types";
import { StoreApi, UseBoundStore } from "zustand";
export type TreeViewState<ID> = {
    checked: Set<ID>;
    updateChecked: (checked: Set<ID>) => void;
    indeterminate: Set<ID>;
    updateIndeterminate: (indeterminate: Set<ID>) => void;
    expanded: Set<ID>;
    updateExpanded: (expanded: Set<ID>) => void;
    initialTreeViewData: TreeNode<ID>[];
    updateInitialTreeViewData: (initialTreeViewData: TreeNode<ID>[]) => void;
    nodeMap: Map<ID, TreeNode<ID>>;
    updateNodeMap: (nodeMap: Map<ID, TreeNode<ID>>) => void;
    childToParentMap: Map<ID, ID>;
    updateChildToParentMap: (childToParentMap: Map<ID, ID>) => void;
    searchText: string;
    updateSearchText: (searchText: string) => void;
    searchKeys: string[];
    updateSearchKeys: (searchKeys: string[]) => void;
    innerMostChildrenIds: ID[];
    updateInnerMostChildrenIds: (innerMostChildrenIds: ID[]) => void;
    selectionPropagation: SelectionPropagation;
    setSelectionPropagation: (selectionPropagation: SelectionPropagation) => void;
    cleanUpTreeViewStore: () => void;
};
export declare function getTreeViewStore<ID>(id: string): UseBoundStore<StoreApi<TreeViewState<ID>>>;
export declare function useTreeViewStore<ID = string>(id: string): UseBoundStore<StoreApi<TreeViewState<ID>>>;
//# sourceMappingURL=treeView.store.d.ts.map