export * from "./event-proxy"; export interface DOMTagNameMap extends HTMLElementTagNameMap { "default": Element; } export type DOMTagNames = keyof DOMTagNameMap; /** * 使用选择器获取 DOM 元素 * @param selector 选择器 * @param parent 查找范围 * @returns DOM 元素 */ export declare function dom(selector: string, parent?: Element): Maybe; /** * @param selector 选择器 * @param multi 查找全部 */ export declare function dom(selector: string, multi?: never[]): DOMTagNameMap[T][]; /** * @param selector 选择器 * @param parent 查找范围 * @param multi 查找全部 */ export declare function dom(selector: string, parent: Element, multi?: never[]): DOMTagNameMap[T][]; /** * 等待 DOM 元素出现并获取 * @param selector 选择器 * @param parent 查找范围 * @returns DOM 元素 */ export declare function asyncdom(selector: string, parent?: Element): Promise; /** * @param selector 选择器 * @param parent 查找范围 * @param timeout 超时限制,默认永远等待 * @returns DOM 元素 */ export declare function asyncdom(selector: string, parent?: Element, timeout?: number): Promise>; /** * 让函数等待 `head` 标签可操作后执行。若当前已可操作 `head` 则会立即执行 * @param callbackfn 回调函数 */ export declare function afterHead(callbackfn: () => void): void; /** * 获取某节点所有属性值 * @param node 目标节点 * @returns 包含该节点所有属性值的对象 */ export declare function getNodeAttrs(node: HTMLElement): LiteralObject; /** * 获取某节点所有属性值,同时解析属性值中的对象 * @param node 目标节点 * @returns 包含该节点所有属性值的对象 */ export declare function getNodeAttrsDeeply(node: HTMLElement): LiteralObject; /** * 将一个属性对象与目标节点的属性进行合并 * @param node 目标节点 * @param attrs 待合并的属性对象 * @returns 合并后的节点属性对象 */ export declare function mergeNodeAttrs(node: T, attrs: LiteralObject): void; /** * 将一个属性对象与目标节点的属性进行深度合并 * @param node 目标节点 * @param attrs 待合并的属性对象 * @returns 合并后的节点属性对象 */ export declare function mergeNodeAttrsDeeply(node: T, attrs: LiteralObject): void; /** * 创建一个新节点 * @param tag 待创建节点的标签 * @param attrs 该节点的属性值 * @param doc 从哪个 `Document` 创建节点 * @returns 被创建的节点 */ export declare function domrd(tag: T, attrs?: LiteralObject, children?: (Node | string)[] | string, doc?: Document): HTMLElementTagNameMap[T]; /** * 根据特征查找父元素 * @param el 子元素 * @param trait 父元素特征 * @param mode 查找模式。默认按类名查找 * @returns 符合条件的父元素 | `undefined` */ export declare function findParent(el: Element, trait: string, mode?: "selector" | "className" | "id" | "tagName"): Maybe; /** 获取垂直滚动条的宽度。对应的 CSS 变量为 `--scrollbar-width` */ export declare const scrollbarWidth: () => number;