/** @packageDocumentation
 * @module Cursor
 */
import "./CursorPopup.scss";
import * as React from "react";
import type { XAndY } from "@itwin/core-geometry";
import { RelativePosition } from "@itwin/appui-abstract";
import type { CommonDivProps, CommonProps, RectangleProps, SizeProps } from "@itwin/core-react";
import { Size } from "@itwin/core-react";
/** Properties for the [[CursorPopup]] React component
 * @public
 */
export interface CursorPopupProps extends CommonProps {
    id: string;
    content: React.ReactNode;
    pt: XAndY;
    offset: XAndY;
    relativePosition: RelativePosition;
    title?: string;
    shadow?: boolean;
    /** Function called when size is known. */
    onSizeKnown?: (size: SizeProps) => void;
}
/** 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): RectangleProps;
    private setDivRef;
    /** @internal */
    render(): JSX.Element;
}
/** CursorPopup content with padding
 * @public
 */
export declare function CursorPopupContent(props: CommonDivProps): JSX.Element;
export {};
//# sourceMappingURL=CursorPopup.d.ts.map