export declare let isPassiveSupport: boolean; declare type BindEventTarget = Element | Document | Window; interface HandlerMap { [key: string]: EventListenerOrEventListenerObject[]; } interface EventMap { [key: string]: HandlerMap; } interface EventWrapper { __event?: EventMap; __eventProcessor?: EventListener; } declare global { export interface Element extends EventWrapper { } export interface Document extends EventWrapper { } export interface Window extends EventWrapper { } } /** * 绑定事件,支持命名空间绑定,比如 'click.show'(注意,不支持多级命名空间) * 提倡绑定事件的时候指定命名空间,也方便于移除事件绑定 * @param el * @param event 比如'click.show'的形式 * @param handler */ export declare function on(el: BindEventTarget, event: string, handler: EventListenerOrEventListenerObject): void; /** * 移除事件绑定 * @param el * @param event 比如'click.show'的形式 */ export declare function off(el: BindEventTarget, event: string): void; /** * 绑定事件,执行一次之后就移除绑定 * @param el * @param event * @param handler */ export declare function once(el: BindEventTarget, event: string, handler: EventListenerOrEventListenerObject): void; export interface ElementPosition { top: number; left: number; } /** * 计算给定元素所在容器的位置(距离可视区域的top、left值) * @param element 需要计算的目标元素 * @param container 元素所在容器,默认window */ export declare function computeElementPosition(element: HTMLElement, container?: HTMLElement | Window): ElementPosition; /** * 计算给定元素距离容器页面顶部、最左边的位置 * 如果是全局滚动(或者说滚动元素容器距离页面顶部距离为0),并且初始滚动位置是0 * 那么这个函数和computeElementPosition的计算结果是一样的 * @param element 需要计算的目标元素 */ export declare function computeElementPagePosition(element: HTMLElement): ElementPosition; export {};