/**
 * 无障碍（a11y）工具集
 * 统一 ARIA 属性辅助、焦点陷阱、列表键盘导航等在交互组件（Dialog / Drawer / Menu /
 * Dropdown / Select 等）中重复出现且容易写错的可访问性逻辑。
 *
 * 参考标准：WAI-ARIA Authoring Practices 1.2。
 */
/** 判定按键是否为「激活」键（Enter / Space），用于自定义可聚焦元素的点击替代 */
export declare function isActivationKey(key: string | undefined): boolean;
export declare function getFocusableElements(container: HTMLElement): HTMLElement[];
/** 焦点陷阱选项 */
export interface FocusTrapOptions {
    /** 焦点受限的容器元素 */
    container: HTMLElement;
    /** 打开时是否自动聚焦容器内首个可聚焦元素 */
    autoFocus?: boolean;
    /** 容器激活前的元素（用于关闭时归还焦点） */
    returnFocusTo?: HTMLElement | null;
}
/** 焦点陷阱句柄 */
export interface FocusTrap {
    /** 启用：绑定 Tab 拦截，可选自动聚焦 */
    connect: () => void;
    /** 关闭：解除拦截，归还焦点 */
    disconnect: () => void;
}
/**
 * 创建焦点陷阱（Dialog / Drawer 打开时把 Tab 循环限制在容器内）。
 * 关键点：Tab 与 Shift+Tab 在容器边界时回环到另一端，防止焦点逃逸到背景。
 * 返回句柄，组件在打开时 connect()、关闭时 disconnect()。
 */
export declare function createFocusTrap(options: FocusTrapOptions): FocusTrap;
/** 列表键盘导航产生的动作 */
export type ListKeyAction = {
    type: 'navigate';
    index: number;
} | {
    type: 'select';
    index: number;
} | {
    type: 'close';
} | {
    type: 'none';
};
/** 列表键盘导航参数 */
export interface ListKeyboardOptions {
    /** 当前高亮项索引（-1 表示无高亮） */
    activeIndex: number;
    /** 列表项总数 */
    itemCount: number;
    /** 是否允许循环（首尾跳转） */
    loop?: boolean;
}
/**
 * 列表 / 菜单 / 下拉选项的键盘导航核心逻辑（listbox / menu / combobox 通用）。
 * 返回应执行的动作，由调用方据此更新 activeIndex / 触发选中 / 关闭。
 *
 * 支持：ArrowDown/ArrowUp（竖排）/ArrowRight/ArrowLeft（横排）移动、Home/End 跳首尾、
 * Enter/Space 选中、Escape 关闭。
 */
export declare function handleListKeyboard(event: KeyboardEvent, options: ListKeyboardOptions): ListKeyAction;
/**
 * 为元素批量设置 ARIA 属性（不可变：返回新映射，但直接操作 DOM 属性是 a11y 的固有需求）。
 * 组件挂载后调用一次即可，避免每次 render 重复写 setAttribute。
 */
export declare function applyAria(el: HTMLElement, attrs: Record<string, string | boolean | undefined>): void;
