import type { BimItemProperties } from '../../components/viewers/bim/src/lib/bimQueries'; import type { ModelIdMap } from '../../components/viewers/bim/src/lib/bimTree'; import type * as OBC from '@thatopen/components'; export interface BimToolProps { components: OBC.Components | null; world: OBC.World | null; fragments: OBC.FragmentsManager | null; /** Ids of every loaded model, in load order. */ modelIds: string[]; /** The live selection, keyed by model id. Updates as the user clicks in the viewport. */ selection: ModelIdMap; select: (items: ModelIdMap) => Promise; clearSelection: () => void; /** Frame the camera on whatever is currently selected. */ fitToSelection: () => Promise; /** Hides everything except `items`, across every loaded model. */ isolate: (items: ModelIdMap) => Promise; setItemsVisible: (items: ModelIdMap, visible: boolean) => Promise; /** The escape hatch from `isolate`: makes everything visible again. */ showAll: () => Promise; getItemsOfCategory: (category: string) => Promise; /** Attributes for the given elements. Omit `attributes` for the default set. */ getProperties: (items: ModelIdMap, attributes?: string[]) => Promise; } /** * Thin façade over the `lib/bim*` helpers core itself uses. Colour lives in * {@link usePluginBimAppearance}, which knows the calling plugin; this cannot. */ export declare function useBimViewer(): BimToolProps; export interface BimAppearance { /** `0xRRGGBB`. Omit to keep each element's own colour. */ color?: number; /** `0`–`1`. Omit to leave elements opaque. */ opacity?: number; } export interface BimAppearanceGroup { items: ModelIdMap; appearance: BimAppearance; } export interface PluginBimAppearance { setAppearance: (groups: readonly BimAppearanceGroup[]) => void; clearAppearance: () => void; } export declare function usePluginBimAppearance(): PluginBimAppearance; export type { ModelIdMap, BimItemProperties }; //# sourceMappingURL=bimViewer.d.ts.map