import { Extension } from './Extension.js'; import { WorldTree } from '../tree/WorldTree.js'; import { type IViewer } from '../../IViewer.js'; import type { PropertyInfo } from '../filtering/PropertyManager.js'; /** TO DO: Should remove selectedObjects entirely*/ export type FilteringState = { selectedObjects?: string[]; hiddenObjects?: string[]; isolatedObjects?: string[]; colorGroups?: { value: string; color: string; ids: string[]; }[]; userColorGroups?: { ids: string[]; color: string; }[]; activePropFilterKey?: string; passMin?: number | null; passMax?: number | null; }; export declare class FilteringExtension extends Extension { WTI: WorldTree; private Renderer; private StateKey; private VisibilityState; private ColorStringFilterState; private ColorNumericFilterState; private UserspaceColorState; private CurrentFilteringState; get filteringState(): FilteringState; get enabled(): boolean; set enabled(value: boolean); constructor(viewer: IViewer); hideObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean, ghost?: boolean): FilteringState; showObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean): FilteringState; isolateObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean, ghost?: boolean): FilteringState; unIsolateObjects(objectIds: string[], stateKey?: string | undefined, includeDescendants?: boolean, ghost?: boolean): FilteringState; private setVisibilityState; private visibilityWalk; setColorFilter(prop: PropertyInfo, ghost?: boolean): FilteringState; private setNumericColorFilter; private setStringColorFilter; removeColorFilter(): FilteringState; setUserObjectColors(groups: { objectIds: string[]; color: string; }[]): FilteringState; removeUserObjectColors(): FilteringState; resetFilters(): FilteringState | null; private setFilters; private idCache; private getDescendantIds; }