import { OpaqueObject } from '@legendapp/state'; import { Supportable, ReadonlyObservable } from '@usels/core'; interface UsePointerLockReturn extends Supportable { /** Currently locked element */ element$: ReadonlyObservable | null>; /** Request pointer lock on a target element or event's currentTarget */ lock: (target: Element | Event) => void; /** Release pointer lock */ unlock: () => void; } /** * Framework-agnostic reactive pointer-lock controller. * * Listens to `pointerlockchange` / `pointerlockerror` on `document` and * exposes the currently locked element as an Observable. `lock()` / `unlock()` * request and release the pointer lock via the Pointer Lock API. */ declare function createPointerLock(): UsePointerLockReturn; export { type UsePointerLockReturn, createPointerLock };