import type { PageScrollLockAdapter } from '../types'; import { disableBodyScroll, enableBodyScroll, BodyScrollOptions } from 'body-scroll-lock-upgrade'; /** * Имя атрибута, устанавливаемого на элемент, имеющий прокрутку. * Атрибут устанавливается на элемент в случае, если * прокручиваемый родитель элемента обрабатывается с помощью body-scroll-lock. */ export declare const BSL_IGNORE_ATTR = "data-bsl-ignore"; /** Адаптер блокировки прокрутки использующий BSL. */ export declare class PageScrollLockAdapterBSL implements PageScrollLockAdapter { private element; private options?; lib: { disableBodyScroll: (...args: Parameters) => void; enableBodyScroll: (...args: Parameters) => void; }; /** * Конструктор. * @param element Целевой элемент для которого надо сохранить прокрутку. * @param options Опции блокировки. */ constructor(element: HTMLElement, options?: BodyScrollOptions); /** * Позволяет заменить библиотеку body-scroll-lock. * Полезен для использования версии BSL, отличной от той что используется в библиотеке. * @param lib Библиотека body-scroll-lock. */ replaceLib(lib: PageScrollLockAdapterBSL['lib']): void; /** @inheritdoc */ lock(): void; /** @inheritdoc */ unlock(): void; } /** * Проверяет необходимость блокировки дочерних элементов в прокручиваемом элементе. * Необходима для того, чтобы в прокручиваемых контейнерах вложенные прокручиваемые элементы, * имеющие специальный атрибут, прокручивались нормально. * @see {@link https://github.com/willmcpo/body-scroll-lock#more-complex} * @param startEl Начальный элемент. * @return Нужно ли позволить перетаскивание элемента. */ export declare const allowTouchMove: Required['allowTouchMove'];