/** @packageDocumentation
 * @module UnifiedSelection
 */
import { Id64String } from "@itwin/core-bentley";
import { IModelConnection } from "@itwin/core-frontend";
import { KeySet } from "@itwin/presentation-common";
/**
 * A set of model, subcategory and element ids that can be used for specifying
 * viewport hilite.
 *
 * @public
 * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `HiliteSet` from [@itwin/unified-selection](https://github.com/iTwin/presentation/blob/master/packages/unified-selection/README.md#hilite-sets) package instead.
 */
export interface HiliteSet {
    models?: Id64String[];
    subCategories?: Id64String[];
    elements?: Id64String[];
}
/**
 * Properties for creating a `HiliteSetProvider` instance.
 * @public
 * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `HiliteSetProvider` from [@itwin/unified-selection](https://github.com/iTwin/presentation/blob/master/packages/unified-selection/README.md#hilite-sets) package instead.
 */
export interface HiliteSetProviderProps {
    imodel: IModelConnection;
}
/**
 * Presentation-based provider which uses presentation ruleset to determine
 * what `HiliteSet` should be hilited in the graphics viewport based on the
 * supplied `KeySet`.
 *
 * @public
 * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `HiliteSetProvider` from [@itwin/unified-selection](https://github.com/iTwin/presentation/blob/master/packages/unified-selection/README.md#hilite-sets) package instead.
 */
export declare class HiliteSetProvider {
    private _imodel;
    private _cache;
    private constructor();
    /**
     * Create a hilite set provider for the specified iModel.
     */
    static create(props: HiliteSetProviderProps): HiliteSetProvider;
    /**
     * Get hilite set for instances and/or nodes whose keys are specified in the
     * given KeySet.
     *
     * Note: The provider caches result of the last request, so subsequent requests
     * for the same input doesn't cost.
     */
    getHiliteSet(selection: Readonly<KeySet>): Promise<HiliteSet>;
    /**
     * Get hilite set iterator for provided keys. It loads content in batches and
     * yields hilite set created from each batch after it is loaded.
     */
    getHiliteSetIterator(selection: Readonly<KeySet>): AsyncIterableIterator<HiliteSet>;
    private createHiliteSetIterator;
    private createHiliteSet;
    private getContentOptions;
    private handleTransientKeys;
}
//# sourceMappingURL=HiliteSetProvider.d.ts.map