import type { Observable } from "rxjs"; import type { GuidString, Id64Arg, Id64String } from "@itwin/core-bentley"; import type { Viewport } from "@itwin/core-frontend"; import type { ChildrenTree } from "../Utils.js"; /** @internal */ export declare const SET_CHANGE_DEBOUNCE_TIME = 20; type SetType = "always" | "never"; interface GetElementsTreeByModelProps { /** Only always/never drawn elements that have the specified models will be returned. */ modelIds: Id64Arg; /** * The type of set from which tree should be retrieved. * `always` - ChildrenTree will be created from `alwaysDrawn` set. * `never` - ChildrenTree will be created from `neverDrawn` set. */ setType: SetType; } interface GetElementsTreeByCategoryProps extends GetElementsTreeByModelProps { /** * Categories of root elements. * * Elements are filtered by given categories. Children of those elements are also included, no matter their category. */ categoryIds: Id64Arg; } interface GetElementsTreeByElementProps extends GetElementsTreeByCategoryProps { /** Path to element for which to get its' child always/never drawn elements. When undefined, models and categories will be used to get the always/never drawn elements. */ parentElementIdsPath: Array; } /** @internal */ export type GetElementsTreeProps = GetElementsTreeByModelProps | GetElementsTreeByCategoryProps | GetElementsTreeByElementProps; /** * - `categoryId` is assigned only to the elements in always/never drawn set. * - `isInAlwaysOrNeverDrawnSet` flag determines if key (ECInstanceId) is in always/never set. * @internal */ export type MapEntry = { isInAlwaysOrNeverDrawnSet: true; categoryId: Id64String; } | { isInAlwaysOrNeverDrawnSet: false; }; type CachedNodesMap = ChildrenTree; export declare class AlwaysAndNeverDrawnElementInfo implements Disposable { #private; constructor(viewport: Viewport, componentId?: GuidString); suppressChangeEvents(): void; resumeChangeEvents(): void; getElementsTree({ setType, modelIds, ...props }: GetElementsTreeProps): Observable; private getChildrenTree; private createCacheEntryObservable; [Symbol.dispose](): void; private queryAlwaysOrNeverDrawnElementInfo; private queryElementInfo; } export {}; //# sourceMappingURL=AlwaysAndNeverDrawnElementInfo.d.ts.map