import type { ReactElement } from "react";
import type { Id64String } from "@itwin/core-bentley";
import type { IModelConnection, Viewport } from "@itwin/core-frontend";
import type { TreeHeaderButtonProps } from "../../tree-header/TreeHeader.js";
/**
* Information about a single Model.
* @public
*/
export interface ModelInfo {
id: string;
isPlanProjection?: boolean;
}
/**
* Props that get passed to `ModelsTreeComponent` header button renderer.
* @see ModelTreeComponentProps.headerButtons
* @public
*/
export interface ModelsTreeHeaderButtonProps extends TreeHeaderButtonProps {
/** A list of models available in the iModel. */
models: ModelInfo[];
}
/**
* Custom hook that creates props required to render `ModelsTreeComponent` header button.
*
* Example:
* ```tsx
* const { buttonProps, onModelsFiltered } = useModelsTreeButtonProps({ imodel, viewport });
* ,
* ,
* ]}
* >
*
*
* ```
*
*
* @public
*/
export declare function useModelsTreeButtonProps({ imodel, viewport }: {
imodel: IModelConnection;
viewport: Viewport;
}): {
buttonProps: Pick;
onModelsFiltered: (models: Id64String[] | undefined) => void;
};
/** @public */
export type ModelsTreeHeaderButtonType = (props: ModelsTreeHeaderButtonProps) => ReactElement | null;
/** @public */
export declare function ShowAllButton(props: ModelsTreeHeaderButtonProps): import("react/jsx-runtime.js").JSX.Element;
/** @public */
export declare function HideAllButton(props: ModelsTreeHeaderButtonProps): import("react/jsx-runtime.js").JSX.Element;
/** @public */
export declare function InvertButton(props: ModelsTreeHeaderButtonProps): import("react/jsx-runtime.js").JSX.Element;
/** @public */
export declare function View2DButton(props: ModelsTreeHeaderButtonProps): import("react/jsx-runtime.js").JSX.Element;
/** @public */
export declare function View3DButton(props: ModelsTreeHeaderButtonProps): import("react/jsx-runtime.js").JSX.Element;
/** @public */
export declare function ToggleInstancesFocusButton({ density, onFeatureUsed }: {
density?: "default" | "enlarged";
onFeatureUsed?: (feature: string) => void;
}): import("react/jsx-runtime.js").JSX.Element;
//# sourceMappingURL=ModelsTreeButtons.d.ts.map