import { ThreeEvent } from '@react-three/fiber';
export interface HoverIntentOptions {
    /**
     * Interval in milliseconds between pointer position checks.
     *
     * @default 50
     */
    interval?: number;
    /**
     * Pixel movement threshold below which hover intent is confirmed.
     *
     * @default 7
     */
    sensitivity?: number;
    /**
     * Delay in milliseconds before hover intent is evaluated.
     *
     * @default 0
     */
    timeout?: number;
    /**
     * Whether the hover intent handlers are disabled.
     */
    disabled?: boolean;
    /**
     * Called when hover intent over is confirmed.
     */
    onPointerOver: (event: ThreeEvent<PointerEvent>) => void;
    /**
     * Called when hover intent out is confirmed.
     */
    onPointerOut: (event: ThreeEvent<PointerEvent>) => void;
}
export interface HoverIntentResult {
    pointerOut: (event: ThreeEvent<PointerEvent>) => void;
    pointerOver: (event: ThreeEvent<PointerEvent>) => void;
}
/**
 * Hover intent identifies if the user actually is
 * intending to over by measuring the position of the mouse
 * once a pointer enters and determining if in a duration if
 * the mouse moved inside a certain threshold and fires the events.
 */
export declare const useHoverIntent: ({ sensitivity, interval, timeout, disabled, onPointerOver, onPointerOut }: HoverIntentOptions | undefined) => HoverIntentResult;
