import type { InternalNode, ObjectTree } from '../ObjectTree';
import type { Visibility } from '../../api/types/Viewpoint';
import type { Models } from '../Models';
export declare class HiddenNodeServices {
    private hiddenObjectCountByResourceId;
    private hiddenMeshnodeIndicesByResourceId;
    private hiddenNodesIdsByResourceId;
    private models;
    private objectTrees;
    constructor(params: {
        models: Models;
        objectTrees: Map<number, ObjectTree>;
    });
    getCount: (resourceId: number) => number;
    getHiddenMeshnodeIndices: (resourceId: number) => Set<number>;
    getHiddenNodeIds: (resourceId: number) => Set<number>;
    setMeshnodeHidden: (virtualMeshnodeIndex: number, hidden: boolean) => void;
    setNodeHidden: (objectTreeNode: InternalNode, hidden: boolean, resourceId: number) => void;
    setMeshnodeHiddenFromSet: (virtualMeshnodeIndexes: Set<number>, hidden: boolean) => void;
    setNodeHiddenFromSet: (nodeIds: Set<number>, hidden: boolean, resourceId: number) => void;
    clear: (resourceId: number) => void;
    hideAll(resourceId: number): void;
    hasMeshnodeIndices: (indexes: Array<number>, resourceId: number) => boolean;
    private nodeNeedsUpdating;
    getVisibility: (resourceId: number, options?: {
        defaultVisibilityAlwaysTrue?: boolean;
    }) => Visibility;
    setVisibility: (visibility: Visibility, resourceId: number) => void;
    private updateNodeAndChildren;
    private updateNodeAndParentsDF;
    private setNodeHiddenIfChildrenHidden;
    private updateNodesAndParentsByIdBF;
    updateHiddenAncestry: (nodeId: number, hidden: boolean, resourceId: number) => void;
}
