import { Observable } from '@legendapp/state'; import { MaybeObservable, DeepMaybeObservable } from '@usels/core'; import { MaybeEventTarget } from '../../types.mjs'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; interface UseScrollLockReturn { /** Current scroll lock state */ isLocked$: Observable; /** Lock scrolling */ lock: () => void; /** Unlock scrolling */ unlock: () => void; /** Toggle lock state */ toggle: () => void; } /** * Framework-agnostic reactive scroll-lock controller. Applies * `overflow: hidden` and scrollbar-width padding to the target element (or * `document.body` when no target is provided), and toggles the `touchmove` * preventDefault listener for iOS Safari support. */ declare function createScrollLock(element?: MaybeEventTarget, initialState?: MaybeObservable, options?: DeepMaybeObservable): UseScrollLockReturn; export { type UseScrollLockReturn, createScrollLock };