/** @packageDocumentation
 * @module IModelComponents
 */
import { TreeCheckboxStateChangeEventArgs, TreeNodeItem, TreeSelectionModificationEventArgs, TreeSelectionReplacementEventArgs } from "@itwin/components-react";
import { BeEvent, IDisposable } from "@itwin/core-bentley";
import { NodeKey } from "@itwin/presentation-common";
import { UnifiedSelectionTreeEventHandler, UnifiedSelectionTreeEventHandlerParams } from "@itwin/presentation-components";
/**
 * Data structure that describes instance visibility status.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export interface VisibilityStatus {
    state: "visible" | "partial" | "hidden";
    isDisabled?: boolean;
    tooltip?: string;
}
/**
 * Type definition of visibility change event listener.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export declare type VisibilityChangeListener = (nodeIds?: string[], visibilityStatus?: Map<string, VisibilityStatus>) => void;
/**
 * Visibility handler used to change or get visibility of instances represented by the tree node.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export interface IVisibilityHandler extends IDisposable {
    getVisibilityStatus(node: TreeNodeItem, nodeKey: NodeKey): VisibilityStatus | Promise<VisibilityStatus>;
    changeVisibility(node: TreeNodeItem, nodeKey: NodeKey, shouldDisplay: boolean): Promise<void>;
    onVisibilityChange: BeEvent<VisibilityChangeListener>;
}
/**
 * Type definition of predicate used to decide if node can be selected.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export declare type VisibilityTreeSelectionPredicate = (key: NodeKey, node: TreeNodeItem) => boolean;
/**
 * Parameters for [[VisibilityTreeEventHandler]]
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export interface VisibilityTreeEventHandlerParams extends UnifiedSelectionTreeEventHandlerParams {
    visibilityHandler: IVisibilityHandler | undefined;
    selectionPredicate?: VisibilityTreeSelectionPredicate;
}
/**
 * Base event handler for visibility tree.
 * @alpha
 * @deprecated in 3.6. Was moved to `@itwin/tree-widget-react` package.
 */
export declare class VisibilityTreeEventHandler extends UnifiedSelectionTreeEventHandler {
    private _visibilityHandler;
    private _selectionPredicate?;
    private _listeners;
    constructor(params: VisibilityTreeEventHandlerParams);
    dispose(): void;
    private filterSelectionItems;
    onSelectionModified({ modifications }: TreeSelectionModificationEventArgs): import("@itwin/components-react").Subscription | undefined;
    onSelectionReplaced({ replacements }: TreeSelectionReplacementEventArgs): import("@itwin/components-react").Subscription | undefined;
    onCheckboxStateChanged(event: TreeCheckboxStateChangeEventArgs): undefined;
    private changeVisibility;
    private updateCheckboxes;
    private updateModel;
    private collectAffectedNodesCheckboxInfos;
    private collectAllNodesCheckboxInfos;
    private getNodeCheckBoxInfo;
    private createCheckboxInfo;
}
//# sourceMappingURL=VisibilityTreeEventHandler.d.ts.map