import "./DisposePolyfill.js";
import { GenericInstanceFilter, HierarchyNode, HierarchyProvider } from "@itwin/presentation-hierarchies";
import { SelectionChangeType } from "../UseSelectionHandler.js";
import { TreeModel, TreeModelNode, TreeModelRootNode } from "./TreeModel.js";
/** @internal */
export declare class TreeActions {
    private _onModelChanged;
    private _onLoad;
    private _onHierarchyLimitExceeded;
    private _onHierarchyLoadError;
    private _loader;
    private _nodeIdFactory;
    private _currentModel;
    private _reset;
    private _nodeLoader;
    constructor(_onModelChanged: (model: TreeModel) => void, _onLoad: (actionType: "initial-load" | "hierarchy-level-load" | "reload", duration: number) => void, _onHierarchyLimitExceeded: (props: {
        parentId?: string;
        filter?: GenericInstanceFilter;
        limit?: number | "unbounded";
    }) => void, _onHierarchyLoadError: (props: {
        parentId?: string;
        type: "timeout" | "unknown";
        error: unknown;
    }) => void, nodeIdFactory?: (node: Pick<HierarchyNode, "key" | "parentKeys">) => string, seed?: TreeModel);
    private createNodeLoader;
    private updateTreeModel;
    private handleLoadedHierarchy;
    private onLoadingComplete;
    private getLoadAction;
    private loadSubTree;
    private loadNodes;
    private reloadSubTree;
    reset(): void;
    setHierarchyProvider(provider?: HierarchyProvider): void;
    getNode(nodeId: string | undefined): TreeModelNode | TreeModelRootNode | undefined;
    selectNodes(nodeIds: Array<string>, changeType: SelectionChangeType): void;
    expandNode(nodeId: string, isExpanded: boolean): {
        complete: Promise<void>;
    };
    setHierarchyLimit(nodeId: string | undefined, limit?: number | "unbounded"): {
        complete: Promise<void>;
    };
    setInstanceFilter(nodeId: string | undefined, filter?: GenericInstanceFilter): {
        complete: Promise<void>;
    };
    reloadTree(options?: {
        parentNodeId?: string;
        state?: "keep" | "discard" | "reset";
    }): {
        complete: Promise<void>;
    };
}
//# sourceMappingURL=TreeActions.d.ts.map