/** @packageDocumentation
 * @module Cursor
 */
import { RelativePosition } from "@itwin/appui-abstract";
import type { XAndY } from "@itwin/core-geometry";
import type { CommonDivProps, CommonProps } from "@itwin/core-react";
import * as React from "react";
import "./CursorPopup.scss";
import { type Placement } from "../../utils/Placement.js";
import type { RequireAtLeastOne } from "@itwin/core-bentley";
import type { SizeProps } from "../../utils/SizeProps.js";
import type { RectangleProps } from "../../utils/RectangleProps.js";
/** Properties for the [[CursorPopup]] React component
 * @public
 */
export type CursorPopupProps = {
    id: string;
    content: React.ReactNode;
    pt: XAndY;
    offset: XAndY;
    title?: string;
    shadow?: boolean;
    /** Function called when size is known. */
    onSizeKnown?: (size: SizeProps) => void;
} & CommonProps & // eslint-disable-line @typescript-eslint/no-deprecated
RequireAtLeastOne<{
    /** @deprecated in 4.16.0. Use `placement` property instead. */
    relativePosition: RelativePosition;
    placement: Placement;
}>;
/** Enum for showing CursorPopup
 * @internal - unit testing
 */
export declare enum CursorPopupShow {
    Open = 0,
    FadeOut = 1
}
/** State for the [[CursorPopup]] React component
 * @internal
 */
interface CursorPopupState {
    showPopup: CursorPopupShow;
    size: SizeProps;
}
/** CursorPopup React component
 * @public
 */
export declare class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {
    private _isMounted;
    /** @internal */
    static fadeOutTime: number;
    constructor(props: CursorPopupProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private _handleCursorPopupFadeOutEvent;
    /** @internal */
    static getPopupRect(pt: XAndY, offset: XAndY, popupSize: SizeProps | undefined, relativePosition: RelativePosition | Placement): RectangleProps;
    private setDivRef;
    render(): React.JSX.Element;
}
/** CursorPopup content with padding
 * @public
 */
export declare function CursorPopupContent(props: CommonDivProps): React.JSX.Element;
export {};
//# sourceMappingURL=CursorPopup.d.ts.map