import { DeepMaybeObservable, ReadonlyObservable } from '@usels/core'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; import { MaybeEventTarget } from '../../types.mjs'; import '@legendapp/state'; type UseMousePressedSourceType = "mouse" | "touch" | null; interface UseMousePressedOptions extends ConfigurableWindow { /** Track touch events. Default: true */ touch?: boolean; /** Event target for press detection. Default: window */ target?: MaybeEventTarget; /** Prevent drag — calls preventDefault on pointerdown. Default: false */ preventDragEvent?: boolean; /** Callback fired on press */ onPressed?: (e: PointerEvent | TouchEvent) => void; /** Callback fired on release */ onReleased?: (e: PointerEvent | TouchEvent) => void; } interface UseMousePressedReturn { /** Current pressed state */ pressed$: ReadonlyObservable; /** Event source type: "mouse" | "touch" | null */ sourceType$: ReadonlyObservable; } /** * Framework-agnostic mouse/touch press state tracker. * * Monitors `pointerdown`/`pointerup` and optionally `touchstart`/`touchend`/`touchcancel` * events on a target (default: window) and exposes reactive pressed state. */ declare function createMousePressed(options?: DeepMaybeObservable): UseMousePressedReturn; export { type UseMousePressedOptions, type UseMousePressedReturn, type UseMousePressedSourceType, createMousePressed };