/** * 轻量级事件发射器接口 * @author zzg */ export type EventType = string | symbol; export type EventHandler = (event?: T) => void; export type EventHandlerMap = Map; /** * Mitt 事件管理器接口 */ export interface IMitt = Record> { /** * 注册事件监听器 * @param type 事件类型 * @param handler 事件处理函数 */ $on(type: Key, handler: EventHandler): void; /** * 注册只执行一次的事件监听器 * @param type 事件类型 * @param handler 事件处理函数 */ $once(type: Key, handler: EventHandler): void; /** * 移除事件监听器 * @param type 事件类型 * @param handler 可选的事件处理函数,如果不提供则移除该类型的所有监听器 */ $off(type: Key, handler?: EventHandler): void; /** * 触发事件 * @param type 事件类型 * @param evt 可选的事件数据 */ $emit(type: Key, evt?: Events[Key]): void; /** * 已绑定的事件处理器映射 */ $boundEvents: Record>; } /** * 创建一个Mitt事件发射器实例 * @param all 可选的初始事件映射 * @returns Mitt实例 */ export declare function mitt = Record>(all?: Record>): IMitt;