/** @packageDocumentation
 * @module Cursor
 */
import { RelativePosition } from "@itwin/appui-abstract";
import type { XAndY } from "@itwin/core-geometry";
import type { CommonDivProps, CommonProps, RectangleProps, SizeProps } from "@itwin/core-react";
import { Size } from "@itwin/core-react";
import * as React from "react";
import "./CursorPopup.scss";
import { type Placement } from "../../utils/Placement";
import type { RequireAtLeastOne } from "@itwin/core-bentley";
/** 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 deprecation/deprecation
RequireAtLeastOne<{
    relativePosition: RelativePosition /** @deprecated in 4.11.0. Use `placement` instead. */;
    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: Size;
}
/** CursorPopup React component
 * @public
 */
export declare class CursorPopup extends React.Component<CursorPopupProps, CursorPopupState> {
    private _isMounted;
    /** @internal */
    static fadeOutTime: number;
    /** @internal */
    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;
    /** @internal */
    render(): React.JSX.Element;
}
/** CursorPopup content with padding
 * @public
 */
export declare function CursorPopupContent(props: CommonDivProps): React.JSX.Element;
export {};
//# sourceMappingURL=CursorPopup.d.ts.map