import type { BooleanOrCallback } from "@ariakit/core/utils/types";
import type { PopoverOptions } from "../popover/popover.js";
import type { As, Props } from "../utils/types.js";
import type { HovercardStore } from "./hovercard-store.js";
/**
 * Returns props to create a `Hovercard` component.
 * @see https://ariakit.org/components/hovercard
 * @example
 * ```jsx
 * const store = useHovercardStore();
 * const props = useHovercard({ store });
 * <HovercardAnchor store={store}>@username</HovercardAnchor>
 * <Role {...props}>Details</Role>
 * ```
 */
export declare const useHovercard: import("../utils/types.js").Hook<HovercardOptions<"div">>;
/**
 * Renders a hovercard element, which is a popover that's usually made visible
 * by hovering the mouse cursor over an anchor element (`HovercardAnchor`).
 * @see https://ariakit.org/components/hovercard
 * @example
 * ```jsx
 * const hovercard = useHovercardStore();
 * <HovercardAnchor store={hovercard}>@username</HovercardAnchor>
 * <Hovercard store={hovercard}>Details</Hovercard>
 * ```
 */
export declare const Hovercard: import("../utils/types.js").Component<HovercardOptions<"div">>;
export interface HovercardOptions<T extends As = "div"> extends PopoverOptions<T> {
    /**
     * Object returned by the `useHovercardStore` hook.
     */
    store: HovercardStore;
    /**
     * Whether to hide the popover when the mouse cursor leaves any hovercard
     * element, including the hovercard popover itself, but also the anchor
     * element.
     * @default true
     */
    hideOnHoverOutside?: BooleanOrCallback<MouseEvent>;
    /**
     * Whether to disable the pointer events outside of the hovercard while the
     * mouse is moving toward the hovercard. This is necessary because these
     * events may trigger focus on other elements and close the hovercard while
     * the user is moving the mouse toward it.
     * @default true
     */
    disablePointerEventsOnApproach?: BooleanOrCallback<MouseEvent>;
    /**
     * @default false
     */
    modal?: PopoverOptions<T>["modal"];
}
export type HovercardProps<T extends As = "div"> = Props<HovercardOptions<T>>;
