import { ReactNode } from "react";
import { FloatingUIOptions } from "./FloatingUIOptions.js";
export type GenericPopoverReference = {
    element: Element;
    cacheMountedBoundingClientRect?: boolean;
} | {
    element: undefined;
    getBoundingClientRect: () => DOMRect;
} | {
    element: Element;
    cacheMountedBoundingClientRect?: boolean;
    getBoundingClientRect: () => DOMRect;
};
export declare function getMountedBoundingClientRectCache(reference: GenericPopoverReference): () => DOMRect;
export declare const GenericPopover: (props: FloatingUIOptions & {
    reference?: GenericPopoverReference;
    children: ReactNode;
    /**
     * Override the DOM node this popover portals into. If omitted, falls back
     * to `editor.portalElement`.
     */
    portalElement?: HTMLElement | null;
}) => false | import("react/jsx-runtime").JSX.Element;
