import { FragmentsGroup } from "bim-fragment"; import { Disposable, Event, FragmentIdMap, UI, Component, UIElement } from "../../base-types"; import { Button, FloatingWindow } from "../../ui"; import { Components } from "../../core"; import { QueryGroup } from "./src/types"; import { QueryBuilder } from "./src/query-builder"; export interface QueryResult { [modelID: string]: { modelEntities: Set; otherEntities: Set; }; } export interface IndexedModels { [modelID: string]: { [expressID: number]: Set; }; } export declare class IfcPropertiesFinder extends Component implements UI, Disposable { readonly onFound: Event; /** {@link Disposable.onDisposed} */ readonly onDisposed: Event; enabled: boolean; uiElement: UIElement<{ main: Button; queryWindow: FloatingWindow; query: QueryBuilder; }>; private readonly _conditionFunctions; private _localStorageID; private _indexedModels; private _noHandleAttributes; constructor(components: Components); private onFragmentsDisposed; init(): void; get(): IndexedModels; dispose(): Promise; loadCached(id?: string): void; deleteCache(): void; private setUI; private indexEntityRelations; find(queryGroups?: QueryGroup[], queryModels?: FragmentsGroup[]): Promise; private toFragmentMap; private simpleQuery; private getMatchingEntities; private combineArrays; private getCommonElements; private arrayIntersection; private arrayUnion; private cache; private getConditionFunctions; }