export type EventType = string | symbol; export type Handler = (event?: T) => void; type WildcardHandler = (type: EventType, event?: any) => void; type EventHandlerList = Array; type WildCardEventHandlerList = Array; type EventHandlerMap = Map; export interface Emitter { all: EventHandlerMap; on(type: EventType, handler: Handler): void; on(type: '*', handler: WildcardHandler): void; off(type: EventType, handler: Handler): void; off(type: '*', handler: WildcardHandler): void; emit(type: EventType, event?: T): void; emit(type: '*', event?: any): void; } /** * Mitt: Tiny (~200b) functional event emitter / pubsub. * @name mitt * @returns {Mitt} */ export default function mitt(all?: EventHandlerMap): Emitter; export {};