/** * Shared overlay focus helpers for Dialog / BottomSheet (Wave A harden). * Trap Tab within container; restore focus on close; optional body scroll lock. */ export declare function listFocusable(container: HTMLElement): HTMLElement[]; /** Tab / Shift+Tab cycle within a dialog container. */ export declare function handleFocusTrapKeyDown(container: HTMLElement, event: KeyboardEvent): void; /** * Focus the preferred control when open, else `[data-initial-focus]`, else first focusable. * Prefer marking the primary/confirm action with `data-initial-focus` so Cancel can stay * first in visual/DOM order (e.g. left on sm+) without stealing initial focus. */ export declare function focusInitialInContainer(container: HTMLElement, preferred?: HTMLElement | null): void; /** * Nested-safe document scroll lock while any overlay is open. * On first lock (0→1): saves html+body overflow and overscrollBehavior, then * sets overflow=hidden and overscrollBehavior=none on both (AdminLoginShell pattern). * On unlock when count→0: restores previous values. */ export declare function lockBodyScroll(): () => void; /** * Mark page/backdrop siblings `inert` while an overlay is mounted. * Walks from `document.body`, leaves the keepAlive subtree interactive, * and inerts every node that is not keepAlive or an ancestor of it. * Callers (Dialog / BottomSheet) should hold the returned cleanup for the full * `useOverlayPresence` mounted lifetime — including exit fade — not clear when * `open` flips false. * Returns a cleanup that clears only the inert flags this call applied. */ export declare function setBackgroundInert(keepAlive: HTMLElement): () => void; //# sourceMappingURL=overlayFocus.d.ts.map