import { ElementHandler } from "./ElementHandler"; import { type DOMUtilsCSSProperty, type DOMUtilsCSSPropertyType } from "./types/DOMUtilsCSSProperty"; import type { DOMUtilsCreateElementAttributesMap } from "./types/DOMUtilsEvent"; import type { DOMUtilsTargetElementType } from "./types/global"; import type { WindowApiOption } from "./types/WindowApi"; declare class DOMUtils extends ElementHandler { constructor(option?: WindowApiOption); /** 版本号 */ version: string; /** * 取消挂载在window下的DOMUtils并返回DOMUtils * @example * let DOMUtils = window.DOMUtils.noConflict() */ noConflict(): this; /** * 获取元素的属性值 * @param $el 目标元素 * @param attrName 属性名 * @example * // 获取a.xx元素的href属性 * DOMUtils.attr(document.querySelector("a.xx"),"href"); * DOMUtils.attr("a.xx","href"); * > https://xxxx.... */ attr($el: DOMUtilsTargetElementType | Element, attrName: string): string; /** * 设置元素的属性值 * @param $el 目标元素 * @param attrName 属性名 * @param attrValue 属性值 * @example * // 修改a.xx元素的href属性为abcd * DOMUtils.attr(document.querySelector("a.xx"),"href","abcd"); * DOMUtils.attr("a.xx","href","abcd"); */ attr($el: DOMUtilsTargetElementType | Element, attrName: string, attrValue: string | boolean | number): void; /** * 创建元素 * @param tagName 标签名 * @param property 属性 * @param attributes 元素上的自定义属性 * @example * // 创建一个DIV元素,且属性class为xxx * DOMUtils.createElement("div",undefined,{ class:"xxx" }); * >
* @example * // 创建一个DIV元素 * DOMUtils.createElement("div"); * >
* @example * // 创建一个DIV元素 * DOMUtils.createElement("div","测试"); * >
测试
*/ createElement( /** 元素名 */ tagName: K, /** 属性 */ property?: ({ [P in keyof HTMLElementTagNameMap[K]]?: HTMLElementTagNameMap[K][P]; } & { [key: string]: any; }) | string, /** 自定义属性 */ attributes?: DOMUtilsCreateElementAttributesMap): HTMLElementTagNameMap[K]; /** * 创建元素 * @param tagName 自定义的标签名 * @param property 属性 * @param attributes 元素上的自定义属性 * @example * // 创建一个custom-div元素,且属性class为xxx * DOMUtils.createElement("custom-div",undefined,{ class:"xxx" }); * > * @example * // 创建一个custom-div元素 * DOMUtils.createElement("custom-div"); * > * @example * // 创建一个custom-div元素 * DOMUtils.createElement("custom-div","测试"); * > 测试 */ createElement( /** 元素名 */ tagName: string, /** 属性 */ property?: ({ [P in keyof HTMLElement]?: HTMLElement[P]; } & { [key: string]: any; }) | string, /** 自定义属性 */ attributes?: DOMUtilsCreateElementAttributesMap): HTMLElement; /** * 获取元素的样式属性值 * @param $el 目标元素 * @param property 样式属性名或包含多个属性名和属性值的对象 * @example * // 获取元素a.xx的CSS属性display * DOMUtils.css(document.querySelector("a.xx"),"display"); * DOMUtils.css("a.xx","display"); * > "none" * */ css($el: DOMUtilsTargetElementType, property: DOMUtilsCSSPropertyType): string; /** * 获取元素的样式属性值 * @param $el 目标元素 * @param property 样式属性名或包含多个属性名和属性值的对象 * @example * // 获取元素a.xx的CSS属性display * DOMUtils.css(document.querySelector("a.xx"),"display"); * DOMUtils.css("a.xx","display"); * > "none" * */ css($el: DOMUtilsTargetElementType, property: string): string; /** * 设置元素的样式属性 * @param $el 目标元素 * @param property 样式属性名或包含多个属性名和属性值的对象 * @param value 样式属性值 * @example * // 设置元素a.xx的CSS属性display为block * DOMUtils.css(document.querySelector("a.xx"),"display","block"); * DOMUtils.css(document.querySelector("a.xx"),"display","block !important"); * DOMUtils.css("a.xx","display","block"); * DOMUtils.css("a.xx","display","block !important"); * @example * // 设置元素a.xx的CSS属性top为10px * DOMUtils.css(document.querySelector("a.xx"),"top","10px"); * DOMUtils.css(document.querySelector("a.xx"),"top",10); * */ css($el: DOMUtilsTargetElementType, property: DOMUtilsCSSPropertyType & string, value: string | number): string; /** * 设置元素的样式属性 * @param $el 目标元素 * @param property 样式属性名或包含多个属性名和属性值的对象 * @param value 样式属性值 * @example * // 设置元素a.xx的CSS属性display为block * DOMUtils.css(document.querySelector("a.xx"),{ display: "block" }}); * DOMUtils.css(document.querySelector("a.xx"),{ display: "block !important" }}); * @example * // 设置元素a.xx的CSS属性top为10px * DOMUtils.css(document.querySelector("a.xx"),{ top: "10px" }); * DOMUtils.css(document.querySelector("a.xx"),{ top: 10 }); * */ css($el: DOMUtilsTargetElementType, property: DOMUtilsCSSProperty | { [key: string]: string | number; } | string): string; /** * 获取元素的文本内容,优先返回textContent * @param $el 目标元素 * @returns 如果传入了text,则返回undefined;否则返回文本内容 * @example * // 设置元素a.xx的文本内容为abcd * DOMUtils.text(document.querySelector("a.xx"),"abcd") * DOMUtils.text("a.xx","abcd") * DOMUtils.text("a.xx",document.querySelector("b")) * */ text($el: DOMUtilsTargetElementType | Element | DocumentFragment | Node): string; /** * 设置元素的文本内容 * @param $el 目标元素 * @param text (可选)文本内容 * @returns 如果传入了text,则返回undefined;否则返回文本内容 * @example * // 设置元素a.xx的文本内容为abcd * DOMUtils.text(document.querySelector("a.xx"),"abcd") * DOMUtils.text("a.xx","abcd") * DOMUtils.text("a.xx",document.querySelector("b")) * */ text($el: DOMUtilsTargetElementType | Element | DocumentFragment | Node, text: string | HTMLElement | Element | number): void; /** * 设置元素的HTML内容 * @param element 目标元素 * @param html (可选)HTML内容|元素 * @returns 如果传入了html,则返回undefined;否则返回HTML内容 * @example * // 设置元素a.xx的文本内容为abcd * DOMUtils.html(document.querySelector("a.xx"),"abcd") * DOMUtils.html("a.xx","abcd") * DOMUtils.html("a.xx",document.querySelector("b")) * */ html(element: DOMUtilsTargetElementType, html: string | HTMLElement | Element | number): void; /** * 获取元素的HTML内容 * @param $el 目标元素 * @param html (可选)HTML内容|元素 * @returns 如果传入了html,则返回undefined;否则返回HTML内容 * @example * // 设置元素a.xx的文本内容为abcd * DOMUtils.html(document.querySelector("a.xx"),"abcd") * DOMUtils.html("a.xx","abcd") * DOMUtils.html("a.xx",document.querySelector("b")) * */ html($el: DOMUtilsTargetElementType): string; /** * 获取移动元素的transform偏移 */ getTransform($el: HTMLElement, isShow?: boolean): { transformLeft: number; transformTop: number; }; /** * 设置元素的value属性值 * @param $el 目标元素 * @param value (可选)value属性值 * @returns 如果传入了value,则返回undefined;否则返回value属性值 * > true * @example * // 修改元素input.xx的复选框值为true * DOMUtils.val(document.querySelector("input.xx"),true) * DOMUtils.val("input.xx",true) * */ val($el: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | string | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf, value: string | boolean | number): void; /** * 获取value属性值 * @param $el 目标元素 * @example * // 获取元素textarea的值 * DOMUtils.val(document.querySelector("textarea.xx")) * */ val($el: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | string | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf): string; /** * 获取value属性值 * @param $el 目标元素 * @example * // 获取元素input.xx的复选框值 * DOMUtils.val(document.querySelector("input.xx")) * DOMUtils.val("input.xx") * */ val($el: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement)[] | NodeListOf): boolean | string; /** * 获取元素的属性值 * @param $el 目标元素 * @param propName 属性名 * @param propValue 属性值 * @example * // 获取元素a.xx的属性data-value * DOMUtils.val(document.querySelector("a.xx"),"data-value") * DOMUtils.val("a.xx","data-value") * > undefined * */ prop($el: DOMUtilsTargetElementType | DocumentFragment, propName: string): T; /** * 设置元素的属性值 * @param $el 目标元素 * @param propName 属性名 * @param propValue 属性值 * @example * // 设置元素a.xx的属性data-value为1 * DOMUtils.val(document.querySelector("a.xx"),"data-value",1) * DOMUtils.val("a.xx","data-value",1) * */ prop($el: DOMUtilsTargetElementType | DocumentFragment, propName: string, propValue: T): void; /** * 移除元素的属性 * @param $el 目标元素 * @param attrName 属性名 * @example * // 移除元素a.xx的属性data-value * DOMUtils.removeAttr(document.querySelector("a.xx"),"data-value") * DOMUtils.removeAttr("a.xx","data-value") * */ removeAttr($el: DOMUtilsTargetElementType | Element, attrName: string): void; /** * 移除元素class名 * @param $el 目标元素 * @param className 类名 * @example * // 移除元素a.xx的className为xx * DOMUtils.removeClass(document.querySelector("a.xx"),"xx") * DOMUtils.removeClass("a.xx","xx") */ removeClass($el: DOMUtilsTargetElementType | Element, className?: string | string[] | undefined | null): void; /** * 移除元素的属性 * @param $el 目标元素 * @param propName 属性名 * @example * // 移除元素a.xx的href属性 * DOMUtils.removeProp(document.querySelector("a.xx"),"href") * DOMUtils.removeProp("a.xx","href") * */ removeProp($el: DOMUtilsTargetElementType | DocumentFragment, propName: string): void; /** * 给元素添加class * @param $el 目标元素 * @param className class名 * @example * // 元素a.xx的className添加_vue_ * DOMUtils.addClass(document.querySelector("a.xx"),"_vue_") * DOMUtils.addClass("a.xx","_vue_") * */ addClass($el: DOMUtilsTargetElementType | Element, className: string | string[]): void; /** * 判断元素是否存在className * @param $el * @param className */ hasClass($el: DOMUtilsTargetElementType | Element, className: string | string[]): boolean; /** * 函数在元素内部末尾添加子元素或HTML字符串 * @param $el 目标元素 * @param args 子元素或HTML字符串 * @example * // 元素a.xx的内部末尾添加一个元素 * DOMUtils.append(document.querySelector("a.xx"), document.querySelector("b.xx")) * DOMUtils.append("a.xx", "") * DOMUtils.append(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")]) * DOMUtils.append(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")) * */ append($el: DOMUtilsTargetElementType | DocumentFragment, ...args: (HTMLElement | string | Element | DocumentFragment | (HTMLElement | string | Element | DocumentFragment)[] | NodeList)[]): void; /** * 函数 在元素内部开头添加子元素或HTML字符串 * @param $el 目标元素 * @param args 子元素或HTML字符串 * @example * // 元素a.xx内部开头添加一个元素 * DOMUtils.prepend(document.querySelector("a.xx"),document.querySelector("b.xx")) * DOMUtils.prepend("a.xx","'") * DOMUtils.prepend(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")]) * DOMUtils.prepend(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")) * */ prepend($el: DOMUtilsTargetElementType | DocumentFragment, ...args: (HTMLElement | string | Element | DocumentFragment | (HTMLElement | string | Element | DocumentFragment)[] | NodeList)[]): void; /** * 在元素后面添加兄弟元素或HTML字符串 * @param $el 目标元素 * @param args 兄弟元素或HTML字符串 * @example * // 元素a.xx后面添加一个元素 * DOMUtils.after(document.querySelector("a.xx"),document.querySelector("b.xx")) * DOMUtils.after("a.xx","'") * DOMUtils.after(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")]) * DOMUtils.after(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")) * */ after($el: DOMUtilsTargetElementType, ...args: (HTMLElement | string | Element | DocumentFragment | (HTMLElement | string | Element | DocumentFragment)[] | NodeList)[]): void; /** * 在元素前面添加兄弟元素或HTML字符串 * @param $el 目标元素 * @param args 兄弟元素或HTML字符串 * @example * // 元素a.xx前面添加一个元素 * DOMUtils.before(document.querySelector("a.xx"),document.querySelector("b.xx")) * DOMUtils.before("a.xx","'") * DOMUtils.before(document, [document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")]) * DOMUtils.before(document, document.querySelector("b.xx"), document.querySelector("c.xx"), document.querySelector("d.xx")) * * */ before($el: DOMUtilsTargetElementType, ...args: (HTMLElement | string | Element | DocumentFragment | (HTMLElement | string | Element | DocumentFragment)[] | NodeList)[]): void; /** * 移除元素(包括它和内部使用.on添加的监听事件) * @param $el 目标元素,可以是数组、单个元素、NodeList、元素选择器 * @example * DOMUtils.remove(document.querySelector("a.xx")) * DOMUtils.remove(document.querySelectorAll("a.xx")) * DOMUtils.remove("a.xx") * DOMUtils.remove([a.xxx, div.xxx, span.xxx]) * */ remove($el: DOMUtilsTargetElementType | Element | null | undefined): void; /** * 移除元素内所有的子元素 * @param $el 目标元素 * @example * // 移除元素a.xx元素的所有子元素 * DOMUtils.empty(document.querySelector("a.xx")) * DOMUtils.empty("a.xx") * */ empty($el: DOMUtilsTargetElementType | Element): void; /** * 获取元素相对于文档的偏移坐标(加上文档的滚动条) * @param $el 目标元素 * @example * // 获取元素a.xx的对于文档的偏移坐标 * DOMUtils.offset(document.querySelector("a.xx")) * DOMUtils.offset("a.xx") * > 0 */ offset($el: HTMLElement | string): { /** y轴偏移 */ top: number; /** x轴偏移 */ left: number; } | undefined; /** * 获取元素的宽度 * @param $el 要获取宽度的元素 * @param value 宽度值 * @param isShow 是否已进行isShow,避免爆堆栈 * @returns 元素的宽度,单位为像素 * @example * // 获取元素a.xx的宽度 * DOMUtils.width(document.querySelector("a.xx")) * DOMUtils.width("a.xx") * > 100 * // 获取window的宽度 * DOMUtils.width(window) * > 400 * @example * // 设置元素a.xx的宽度为200 * DOMUtils.width(document.querySelector("a.xx"),200) * DOMUtils.width("a.xx",200) */ width($el: HTMLElement | string | Window | typeof globalThis | Document, isShow?: boolean): number; /** * 获取元素的高度 * @param $el 要获取高度的元素 * @param isShow 是否已进行isShow,避免爆堆栈 * @returns 元素的高度,单位为像素 * @example * // 获取元素a.xx的高度 * DOMUtils.height(document.querySelector("a.xx")) * DOMUtils.height("a.xx") * > 100 * // 获取window的高度 * DOMUtils.height(window) * > 700 * @example * // 设置元素a.xx的高度为200 * DOMUtils.height(document.querySelector("a.xx"),200) * DOMUtils.height("a.xx",200) */ height($el: HTMLElement | string | Window | typeof globalThis | Document, isShow?: boolean): number; /** * 获取元素的外部宽度(包括边框和外边距) * @param $el 要获取外部宽度的元素 * @param [isShow=false] 是否已进行isShow,避免爆堆栈 * @returns 元素的外部宽度,单位为像素 * @example * // 获取元素a.xx的外部宽度 * DOMUtils.outerWidth(document.querySelector("a.xx")) * DOMUtils.outerWidth("a.xx") * > 100 * // 获取window的外部宽度 * DOMUtils.outerWidth(window) * > 400 */ outerWidth($el: HTMLElement | string | Window | typeof globalThis | Document, isShow?: boolean): number; /** * 获取元素的外部高度(包括边框和外边距) * @param {HTMLElement|string} $el 要获取外部高度的元素 * @param {boolean} [isShow=false] 是否已进行isShow,避免爆堆栈 * @returns {number} 元素的外部高度,单位为像素 * @example * // 获取元素a.xx的外部高度 * DOMUtils.outerHeight(document.querySelector("a.xx")) * DOMUtils.outerHeight("a.xx") * > 100 * // 获取window的外部高度 * DOMUtils.outerHeight(window) * > 700 */ outerHeight($el: HTMLElement | string | Window | typeof globalThis | Document, isShow?: boolean): number; /** * 将一个元素替换为另一个元素 * @param $el 目标元素 * @param $newEl 新元素 * @example * // 替换元素a.xx为b.xx * DOMUtils.replaceWith(document.querySelector("a.xx"),document.querySelector("b.xx")) * DOMUtils.replaceWith("a.xx",'') */ replaceWith($el: DOMUtilsTargetElementType, $newEl: HTMLElement | string | Node): void; /** * 将一个元素包裹在指定的HTML元素中 * @param $el 要包裹的元素 * @param wrapperHTML 要包裹的HTML元素的字符串表示形式 * @example * // 将a.xx元素外面包裹一层div * DOMUtils.wrap(document.querySelector("a.xx"),"
") */ wrap($el: DOMUtilsTargetElementType, wrapperHTML: string): void; /** * 获取当前元素的前一个兄弟元素 * @param $el 当前元素 * @returns 前一个兄弟元素 * @example * // 获取a.xx元素前一个兄弟元素 * DOMUtils.prev(document.querySelector("a.xx")) * DOMUtils.prev("a.xx") * >
....
*/ prev($el: HTMLElement | string): HTMLElement; /** * 获取当前元素的后一个兄弟元素 * @param $el 当前元素 * @returns 后一个兄弟元素 * @example * // 获取a.xx元素前一个兄弟元素 * DOMUtils.next(document.querySelector("a.xx")) * DOMUtils.next("a.xx") * >
....
*/ next($el: HTMLElement | string): HTMLElement; /** * 获取当前元素的所有兄弟元素 * @param element 当前元素 * @returns 所有兄弟元素 * @example * // 获取a.xx元素所有兄弟元素 * DOMUtils.siblings(document.querySelector("a.xx")) * DOMUtils.siblings("a.xx") * > (3)[div.logo-wrapper, div.forum-block, div.more-btn-desc] */ siblings(element: HTMLElement | string): HTMLElement[]; /** * 获取当前元素的父元素 * @param $el 当前元素 * @returns 父元素 * @example * // 获取a.xx元素的父元素 * DOMUtils.parent(document.querySelector("a.xx")) * DOMUtils.parent("a.xx") * >
....
*/ parent($el: HTMLElement | string): HTMLElement; /** * 获取当前元素的父元素 * @param $el 当前元素 * @returns 父元素 * @example * // 获取a.xx元素的父元素 * DOMUtils.parent(document.querySelector("a.xx")) * DOMUtils.parent("a.xx") * >
....
*/ parent($el: HTMLElement[] | NodeList): HTMLElement[]; /** * 将字符串转为Element元素 * @param html * @param useParser 是否使用DOMParser来生成元素,有些时候通过DOMParser生成的元素有点问题 * + true 使用DOMPraser来转换字符串 * + false (默认)创建一个div,里面放入字符串,然后提取firstChild * @param isComplete 是否是完整的 * + true 如果useParser为true,那么返回整个使用DOMParser转换成的Document * 如果useParser为false,返回一个DIV元素,DIV元素内包裹着需要转换的字符串 * + false (默认)如果useParser为true,那么返回整个使用DOMParser转换成的Document的body * 如果useParser为false,返回一个DIV元素的firstChild * @example * // 将字符串转为Element元素 * DOMUtils.toElement("") * > * @example * // 使用DOMParser将字符串转为Element元素 * DOMUtils.toElement("",true) * > * @example * // 由于需要转换的元素是多个元素,将字符串转为完整的Element元素 * DOMUtils.toElement("",false, true) * >
* @example * // 由于需要转换的元素是多个元素,使用DOMParser将字符串转为完整的Element元素 * DOMUtils.toElement("",true, true) * > #document */ toElement(html: string, useParser?: T1, isComplete?: T2): T1 extends true ? (T2 extends true ? Document : HTMLElement) : HTMLElement; /** * 将字符串转为Element元素数组 * @param html * @param useParser 是否使用DOMParser来生成元素,有些时候通过DOMParser生成的元素有点问题 * + true 使用DOMPraser来转换字符串 * + false (默认)创建一个div,里面放入字符串,然后提取childNodes * @example * // 将字符串转为Element元素数组 * DOMUtils.toElements("") * > [] * @example * // 使用DOMParser将字符串转为Element元素数组 * DOMUtils.toElements("",true) * > [] */ toElements(html: string, useParser?: boolean): ChildNode[]; /** * 序列化表单元素 * @param $form 表单元素 * @example * DOMUtils.serialize(document.querySelector("form")) * > xxx=xxx&aaa= */ serialize($form: HTMLFormElement): string; /** * 创建一个新的DOMUtils实例 * @param option * @returns */ createDOMUtils(option?: WindowApiOption): DOMUtils; /** * 获取文字的位置信息 * @param $input 输入框 * @param selectionStart 起始位置 * @param selectionEnd 结束位置 * @example * DOMUtils.getTextBoundingRect(document.querySelector("input")); */ getTextBoundingRect($input: HTMLInputElement, selectionStart?: number | string, selectionEnd?: number | string): DOMRect; /** * 在页面中增加style元素,如果html节点存在子节点,添加子节点第一个,反之,添加到html节点的子节点最后一个 * @param cssText css字符串 * @returns 返回添加的CSS标签 * @example * DOMUtils.addStyle("html{}"); * > */ addStyle(cssText: string): HTMLStyleElement; /** * 检测点击的地方是否在该元素区域内 * @param $el 需要检测的元素 * @returns * + true 点击在元素上 * + false 未点击在元素上 * @example * DOMUtils.checkUserClickInNode(document.querySelector(".xxx")); * > false **/ checkUserClickInNode($el: Element | Node | HTMLElement): boolean; /** * 删除某个父元素,父元素可能在上层或上上层或上上上层... * @param $el 当前元素 * @param parentSelector 判断是否满足父元素,参数为当前处理的父元素,满足返回true,否则false * @returns * + true 已删除 * + false 未删除 * @example * DOMUtils.deleteParentNode(document.querySelector("a"),".xxx"); * > true **/ deleteParentNode($el: Node | HTMLElement | Element | null, parentSelector: string): boolean; /** * 定位元素上的字符串,返回一个迭代器 * @param $el 目标元素 * @param text 需要定位的字符串 * @param filter (可选)过滤器函数,返回值为true是排除该元素 * @example * let textIterator = DOMUtils.findElementsWithText(document.documentElement,"xxxx"); * textIterator.next(); * > {value: ?HTMLElement, done: boolean, next: Function} */ findElementsWithText($el: T, text: string, filter?: (element: T) => boolean): Generator; /** * 寻找可见元素,如果元素不可见,则向上找它的父元素直至找到,如果父元素不存在则返回null * @param $el * @example * let visibleElement = DOMUtils.findVisibleElement(document.querySelector("a.xx")); * > */ findVisibleElement($el: HTMLElement | Element | Node): HTMLElement | null; /** * 将元素上的文本或元素使用光标进行选中 * * 注意,如果设置startIndex和endIndex,且元素上并无可选则的坐标,那么会报错 * @param $el 目标元素 * @param childTextNode 目标元素下的#text元素 * @param startIndex (可选)开始坐标,可为空 * @param endIndex (可选)结束坐标,可为空 * @example * DOMUtils.setElementSelection(document.querySelector("span")); */ setElementSelection($el: HTMLElement | Element | Node, childTextNode?: ChildNode, startIndex?: number, endIndex?: number): void; } declare const domUtils: DOMUtils; export { domUtils as DOMUtils };