import { ReactiveController, ReactiveElement } from 'lit'; /** * Locks page scroll behind a blocking surface (a modal popover, dialog, or tray) * by setting `overflow: hidden` on the document element. A component's shadow * stylesheet cannot reach ``, so this is done in JS. * * The lock is reference-counted at module scope so concurrent locks from stacked * surfaces do not clobber one another's saved state. Each host holds at most one * count (the per-instance `lock()` / `unlock()` are idempotent), and the * controller releases the host's count automatically on disconnect. */ export declare class PageScrollLockController implements ReactiveController { private _locked; constructor(host: ReactiveElement); /** Lock page scroll on behalf of the host. Idempotent per host. */ lock(): void; /** Release the host's lock if it holds one. Idempotent per host. */ unlock(): void; hostDisconnected(): void; }