`,两种写法在真实 DOM 上等价;取带 `div`
* 前缀这份更精确(不会匹配将来可能出现的非 div 自定义元素),故统一到它。
*/
export declare const SETTINGS_DIALOG_SELECTOR = "div[role=\"dialog\"][aria-modal=\"true\"]";
/**
* 设置弹窗挂载层:壳组件用 `role="presentation"` 的 overlay 承载遮罩与弹窗。
* It is the one structural fact that tells the settings modal apart from any other
* modal that happens to render a nav rail.
*/
export declare const OVERLAY_ROLE = "presentation";
/**
* The panel's own mask: the `aria-hidden` sibling immediately before it. A
* sibling that CONTAINS the panel is a container, not a mask - returning it would
* make `mask.contains(target)` true for every click in the page and swallow them
* all.
* @param dialog - the settings dialog.
*/
export declare function maskOf(dialog: Element): HTMLElement | null;
/**
* True for the host settings dialog: a modal dialog with a nav rail, mounted in
* the shell's `role="presentation"` layer next to its own mask. Requiring that
* layer and the mask sibling matters - "modal + nav" alone also accepts other
* plugins' navigable modals, and taking one of those for the panel made this
* engine intercept clicks that are none of its business.
* @param node - a candidate dialog element.
*/
export declare function isSettingsDialog(node: Element): boolean;
/**
* 严口径查找:第一个真正的设置弹窗(见 `isSettingsDialog()`),没有则 null。
*
* 与 `findDialogWithNavRail()` 的差别:这里额外要求 overlay 层与遮罩兄弟,
* 且 nav 只要求"存在"(任意深度)—— 动效引擎的关闭拦截宁可漏认,也不认错。
*/
export declare function findSettingsDialog(): HTMLElement | null;
/**
* 宽口径查找:第一个"modal dialog 且直接子级含