/** @packageDocumentation
 * @module IModelComponents
 */
import { BeEvent } from "@itwin/core-bentley";
import { IModelConnection, ViewManager, Viewport } from "@itwin/core-frontend";
import { NodeKey } from "@itwin/presentation-common";
import { TreeNodeItem } from "@itwin/components-react";
import { IVisibilityHandler, VisibilityChangeListener, VisibilityStatus } from "../VisibilityTreeEventHandler";
/**
 * Loads categories from viewport or uses provided list of categories.
 * @internal
 */
export declare function useCategories(viewManager: ViewManager, imodel: IModelConnection, view?: Viewport): Category[];
/** @internal */
export declare function loadCategoriesFromViewport(iModel?: IModelConnection, vp?: Viewport): Promise<Category[]>;
/**
 * Data structure that describes category.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export interface Category {
    key: string;
    children?: string[];
}
/**
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export interface CategoryVisibilityHandlerParams {
    viewManager: ViewManager;
    imodel: IModelConnection;
    categories: Category[];
    activeView?: Viewport;
    allViewports?: boolean;
}
/**
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export declare class CategoryVisibilityHandler implements IVisibilityHandler {
    private _viewManager;
    private _imodel;
    private _pendingVisibilityChange;
    private _activeView?;
    private _useAllViewports;
    private _categories;
    constructor(params: CategoryVisibilityHandlerParams);
    dispose(): void;
    onVisibilityChange: BeEvent<VisibilityChangeListener>;
    getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus;
    changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, shouldDisplay: boolean): Promise<void>;
    getSubCategoryVisibility(id: string): "hidden" | "visible";
    getCategoryVisibility(id: string): "hidden" | "visible";
    getParent(key: string): Category | undefined;
    private onDisplayStyleChanged;
    private onViewedCategoriesChanged;
    private onVisibilityChangeInternal;
    static getInstanceIdFromTreeNodeKey(nodeKey: NodeKey): string;
    /** Changes category display in the viewport */
    static enableCategory(viewManager: ViewManager, imodel: IModelConnection, ids: string[], enabled: boolean, forAllViewports: boolean, enableAllSubCategories?: boolean): void;
    /** Changes subcategory display in the viewport */
    static enableSubCategory(viewManager: ViewManager, key: string, enabled: boolean, forAllViewports?: boolean): void;
}
//# sourceMappingURL=CategoryVisibilityHandler.d.ts.map