import { SelectionStorage } from "@itwin/unified-selection";
import { SelectionChangeType } from "../UseSelectionHandler.js";
import { TreeModelNode, TreeModelRootNode } from "./TreeModel.js";
/** @internal */
export interface TreeSelectionOptions {
    isNodeSelected: (nodeId: string) => boolean;
    selectNodes: (nodeIds: Array<string>, changeType: SelectionChangeType) => void;
}
/** @public */
export interface UseUnifiedTreeSelectionProps {
    /**
     * Identifier to distinguish this source of changes to the unified selection from another ones in the application.
     */
    sourceName: string;
    /**
     * Unified selection storage to use for listening, getting and changing active selection.
     *
     * When not specified, the deprecated unified selection React context is used to access the
     * selection storage (see `UnifiedSelectionProvider`). This prop will be made required in the
     * next major release, where the deprecated context will also be removed.
     */
    selectionStorage?: SelectionStorage;
}
/** @internal */
export declare function useUnifiedTreeSelection({ sourceName, selectionStorage, getTreeModelNode, }: UseUnifiedTreeSelectionProps & {
    getTreeModelNode: (nodeId: string) => TreeModelNode | TreeModelRootNode | undefined;
}): TreeSelectionOptions;
//# sourceMappingURL=UseUnifiedSelection.d.ts.map