export interface ViewportOffsetResult {
    left: number;
    top: number;
    right: number;
    bottom: number;
    rightIncludeBody: number;
    bottomIncludeBody: number;
}
/**
 * 获取元素的边界矩形信息。
 * @param element 指定的元素，必须是一个Element类型。
 * @returns 如果元素有效且存在getBoundingClientRect方法，则返回该方法的结果，即DOMRect对象；否则返回0。
 */
export declare function getBoundingClientRect(element: Element): DOMRect | number;
/**
 * 检查一个元素是否包含指定的类名。
 * @param el 指定的元素，必须是一个Element类型。
 * @param cls 指定的类名，是一个字符串。
 * @returns 返回一个布尔值，如果元素包含指定的类名则为true，否则为false。
 */
export declare function hasClass(el: Element, cls: string): boolean;
/**
 * 为指定元素添加一个或多个类名。
 * @param el 指定的元素，必须是一个Element类型。
 * @param cls 要添加的类名，可以是单个类名或多个类名组成的字符串，多个类名之间用空格分隔。
 */
export declare function addClass(el: Element, cls: string): void;
/**
 * 从元素中移除指定的类名。
 * @param el 指定的元素，必须是一个Element类型。
 * @param cls 要移除的类名，可以是一个由空格分隔的多个类名的字符串。
 *
 * 函数首先检查传入的元素和类名是否为空，如果为空则直接返回。
 * 然后将类名字符串按空格分割成数组，遍历这个数组以移除每个指定的类名。
 * 对于支持 classList 属性的现代浏览器，直接使用 classList.remove 方法移除类名。
 * 对于不支持 classList 的浏览器，则操作元素的 className 属性，通过字符串替换的方式移除类名。
 * 最后，如果浏览器不支持 classList，将处理后的 className 赋值回元素，以确保类名的更新。
 */
export declare function removeClass(el: Element, cls: string): void;
/**
 * 获取指定元素相对于视口的位置信息。
 *
 * @param element 需要获取位置信息的元素。
 * @returns 返回一个包含元素相对于视口的位置信息的对象。
 */
export declare function getViewportOffset(element: Element): ViewportOffsetResult;
/**
 * 为CSS属性生成兼容前缀的样式对象
 * @param attr 需要设置的CSS属性名
 * @param value 属性对应的值
 * @returns 返回一个对象，该对象包含带有各种浏览器前缀的属性以及原始属性，以确保在多个浏览器中兼容
 */
export declare function hackCss(attr: string, value: string): any;
export declare function on(element: Element | HTMLElement | Document | Window, event: string, handler: EventListenerOrEventListenerObject): void;
export declare function off(element: Element | HTMLElement | Document | Window, event: string, handler: Fn): void;
export declare function once(el: HTMLElement, event: string, fn: EventListener): void;
/**
 * 使用RAF节流函数封装给定的函数。
 * @param fn 需要被节流的函数。
 * @returns 返回一个节流后的函数。
 * @template T 函数参数类型。
 */
export declare function useRafThrottle<T extends any>(fn: T): T;
/**
 * 添加样式表
 * @param href 样式表的URL
 */
export declare const addStyelsheet: (href: string) => void;
/**
 * 获取指定元素的dataset，或者根据key获取特定的dataset值
 * @param el 指定的元素，如果未提供，则默认为document.body
 * @param key 需要获取的dataset的键名，如果未提供，则返回整个dataset对象
 * @returns 如果提供了key，则返回对应的dataset值；否则返回整个dataset对象
 */
export declare const getDomDataset: (el: HTMLElement, key?: string) => string | DOMStringMap | undefined;
/**
 * @description: 获取文本宽度
 * @param {string} text
 * @param {*} font 字体样式（一般只传入字体font-size值） 也可以是'14px sans-serif'等
 * @return {number}
 */
export declare const useTextWidth: (text: string, font?: string) => number;
/**
 * 将指定的错误表单项滚动到视图中。
 * @param option 配置对象，可选参数，用于定制滚动行为。
 * @param option.behavior 滚动行为，默认为 'smooth'，可选值包括 'auto', 'instant', 'smooth'。
 * @param option.block 指定滚动到哪个块级元素，默认为 'end'，可选值包括 'start', 'end', 'nearest'。
 * @param option.inline 指定在行内方向上滚动到哪个位置，默认为 'nearest'，可选值包括 'start', 'end', 'nearest'。
 * @returns 无返回值。
 */
export declare const intoErrorView: (option?: {
    behavior?: string;
    block?: string;
    inline?: string;
}) => void;
