import { type DOMAttributes } from 'react'; import type { PressEvent } from '../../../core/types/events.js'; /** * @deprecated Will be removed. * @internal * */ export interface PressProps { /** Handler that is called when the press is released over the target. */ onPress?: (e: PressEvent) => void; /** Whether the press events should be disabled. */ isDisabled?: boolean; } interface PressEventResult { /** Props to spread on the target element. */ pressProps: Pick, 'onKeyDown' | 'onKeyUp' | 'onClick' | 'onMouseDown' | 'onPointerDown' | 'onPointerUp' | 'onDragStart' | 'onMouseUp' | 'onMouseEnter' | 'onMouseLeave' | 'onTouchStart' | 'onTouchEnd' | 'onTouchMove' | 'onTouchCancel'>; } /** * This hook is largely inspired by https://github.com/adobe/react-spectrum/blob/2a1c28b8370f4a19e4bdb92e0daf14d07990f27a/packages/%40react-aria/interactions/src/usePress.ts * It handles mouse, touch, keyboard events, as well as screen readers. * It internally manages the state of the press interaction, such as detecting when the button is pressed and released. * An interaction starts when the user presses down with a mouse or their finger on the target, and ends when they move the pointer off the target. * If the pointer is released over the target, then the onPress callback is triggered, unless isDisabled is true. * More information about its features: https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/docs/usePress.mdx * @deprecated Will be removed. * @internal */ export declare function usePress(props: PressProps): PressEventResult; export {};