import { Id64String } from "@itwin/core-bentley";
import { ECClassHierarchyInspector, ECSqlQueryExecutor } from "@itwin/presentation-shared";
import { Selectables } from "./Selectable.js";
/**
 * A set of model, subcategory and element ids that can be used for specifying hilite.
 *
 * **Warning:** Used in public API as a return value. Not expected to be created / extended by package
 * consumers, may be supplemented with required attributes any time.
 *
 * @see https://www.itwinjs.org/reference/core-frontend/selectionset/hiliteset/
 * @see `HiliteSetProvider`
 * @see `createHiliteSetProvider`
 * @public
 */
export interface HiliteSet {
    models: Id64String[];
    subCategories: Id64String[];
    elements: Id64String[];
}
/**
 * Props for creating a `HiliteSetProvider` instance.
 * @public
 */
export interface HiliteSetProviderProps {
    /** An object that provides access to iModel's metadata and allows running ECSQL queries on it. */
    imodelAccess: ECClassHierarchyInspector & ECSqlQueryExecutor;
}
/**
 * Defines return value of `createHiliteSetProvider`.
 *
 * **Warning:** Used in public API as a return value. Not expected to be created / extended by package
 * consumers, may be supplemented with required attributes any time.
 *
 * @see `createHiliteSetProvider`
 * @public
 */
export interface HiliteSetProvider {
    /** Get the current hilite set iterator for the specified imodel */
    getHiliteSet(props: {
        selectables: Selectables;
    }): AsyncIterableIterator<HiliteSet>;
}
/**
 * Creates a hilite set provider that returns a `HiliteSet` for given selectables.
 * @public
 */
export declare function createHiliteSetProvider(props: HiliteSetProviderProps): HiliteSetProvider;
//# sourceMappingURL=HiliteSetProvider.d.ts.map