import "../common/DisposePolyfill.js";
import { ActiveMatchInfo, DelayLoadedTreeNodeItem, PageOptions, TreeNodeItem } from "@itwin/components-react";
import { IModelConnection } from "@itwin/core-frontend";
import { InstanceFilterDefinition, NodeKey, NodePathElement } from "@itwin/presentation-common";
import { IFilteredPresentationTreeDataProvider, IPresentationTreeDataProvider } from "./IPresentationTreeDataProvider.js";
/** @internal */
export interface FilteredPresentationTreeDataProviderProps {
    parentDataProvider: IPresentationTreeDataProvider;
    filter: string;
    paths: ReadonlyArray<Readonly<NodePathElement>>;
}
/**
 * Rules-driven presentation tree data provider that returns filtered results.
 * @internal
 */
export declare class FilteredPresentationTreeDataProvider implements IFilteredPresentationTreeDataProvider {
    private _parentDataProvider;
    private _filteredDataProvider;
    private _filter;
    private _filteredResultMatches;
    constructor(props: FilteredPresentationTreeDataProviderProps);
    [Symbol.dispose](): void;
    dispose(): void;
    get rulesetId(): string;
    get imodel(): IModelConnection;
    get filter(): string;
    get parentDataProvider(): IPresentationTreeDataProvider;
    private createHierarchy;
    getActiveMatch: (index: number) => ActiveMatchInfo | undefined;
    /** Count filtering results. Including multiple possible matches within node labels */
    countFilteringResults(nodePaths: ReadonlyArray<Readonly<NodePathElement>>): number;
    getNodes(parent?: TreeNodeItem, pageOptions?: PageOptions): Promise<DelayLoadedTreeNodeItem[]>;
    getNodesCount(parent?: TreeNodeItem): Promise<number>;
    getFilteredNodePaths(filter: string): Promise<NodePathElement[]>;
    createRequestOptions(parentKey?: NodeKey, instanceFilter?: InstanceFilterDefinition): import("@itwin/presentation-common").HierarchyRequestOptions<IModelConnection, NodeKey, import("@itwin/presentation-common").RulesetVariable>;
    /** @deprecated in 4.0. Use [[isPresentationTreeNodeItem]] and [[PresentationTreeNodeItem.key]] to get [NodeKey]($presentation-common). */
    getNodeKey(node: TreeNodeItem): NodeKey;
    /** Check if node matches currently applied filter */
    nodeMatchesFilter(node: TreeNodeItem): boolean;
}
//# sourceMappingURL=FilteredDataProvider.d.ts.map