import { DeepMaybeObservable, ReadonlyObservable } from '@usels/core'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; import { MaybeEventTarget } from '../../types.mjs'; import '@legendapp/state'; type UsePointerType = "mouse" | "touch" | "pen"; interface UsePointerOptions extends ConfigurableWindow { /** Target element to listen on. Default: window */ target?: MaybeEventTarget; /** Pointer types to listen for. Default: all types */ pointerTypes?: UsePointerType[]; } interface UsePointerReturn { /** X coordinate */ x$: ReadonlyObservable; /** Y coordinate */ y$: ReadonlyObservable; /** Pointer pressure (0-1) */ pressure$: ReadonlyObservable; /** Unique pointer identifier */ pointerId$: ReadonlyObservable; /** Tilt angle on X axis (-90 to 90) */ tiltX$: ReadonlyObservable; /** Tilt angle on Y axis (-90 to 90) */ tiltY$: ReadonlyObservable; /** Contact geometry width */ width$: ReadonlyObservable; /** Contact geometry height */ height$: ReadonlyObservable; /** Clockwise rotation (0-359) */ twist$: ReadonlyObservable; /** Pointer device type */ pointerType$: ReadonlyObservable; /** Whether pointer is inside the target */ isInside$: ReadonlyObservable; } /** * Framework-agnostic reactive pointer tracker. * * Listens to `pointerdown` / `pointermove` / `pointerup` / `pointerleave` * on a target (default: window resolved via `resolveWindowSource`) and * exposes position, pressure, tilt, dimensions, twist, pointer type, and * inside state as observables. */ declare function createPointer(options?: DeepMaybeObservable): UsePointerReturn; export { type UsePointerOptions, type UsePointerReturn, type UsePointerType, createPointer };