export interface MyEvent extends CustomEvent { /** * @deprecated 请使用{@link CustomEvent.detail}替代 */ data?: TData; } /** * 创建一个dom event * * ```ts * import { DOMEvent } from 'sunny-js' * const event = DOMEvent.create('customEvent') * document.dispatchEvent(event) * ``` * */ export declare function create(name: string, data?: TData): MyEvent; /** * 触发一个DOM事件 * 如果trigger没有绑定DOM上下文,则会在document上触发事件 * * ```ts * import { DOMEvent } from 'sunny-js' * DOMEvent.on('customEvent', console.log) * DOMEvent.trigger('customEvent') * ``` * * @see {@link create} */ export declare function trigger(...args: Parameters): void; type onFnArgs = [ name: string, callback: (e: MyEvent) => void, options?: boolean | AddEventListenerOptions ]; /** * 移除事件监听函数 */ type RemoveEventListenerFn = () => void; /** * 在document上绑定事件 * * ```ts * import { DOMEvent } from 'sunny-js' * const removeEventListener = DOMEvent.on('customEvent', console.log) * removeEventListener() * ``` * * @see {@link off} * @returns 移除事件监听函数 */ export declare function on(...args: onFnArgs): RemoveEventListenerFn; /** * 在document上解绑事件 * * ```ts * import { DOMEvent } from 'sunny-js' * DOMEvent.on('customEvent', console.log) * DOMEvent.off('customEvent', console.log) * ``` * * @see {@link on} */ export declare function off(...args: onFnArgs): void; export {};