/** * @author Piotr Kowalski (https://piecioshka.pl/) * @name super-event-emitter * @description 🔨 Lightweight and simple interpretation of popular event management * @version 5.0.3 * @license MIT * @example * const bar = new SuperEventEmitter(); * bar.on('foo', function () { * console.log('foo event emitted'); * }); * bar.emit('foo'); */ type MyEvent = { name: string; fn: (this: MyEvent["ctx"], nameOrPayload: string | any, payload?: any) => void; run: MyEvent["fn"]; ctx: unknown; }; export declare class SuperEventEmitter { _listeners: MyEvent[]; /** * Register listener on concrete name with specified handler. */ on: (name: MyEvent["name"], fn: MyEvent["fn"], ctx?: MyEvent["ctx"]) => this; addEventListener: (name: MyEvent["name"], fn: MyEvent["fn"], ctx?: MyEvent["ctx"]) => this; addListener: (name: MyEvent["name"], fn: MyEvent["fn"], ctx?: MyEvent["ctx"]) => this; bind: (name: MyEvent["name"], fn: MyEvent["fn"], ctx?: MyEvent["ctx"]) => this; /** * Register listener. * Remove them after once event triggered. */ once: (name: MyEvent["name"], fn: MyEvent["fn"], ctx?: MyEvent["ctx"]) => this; /** * Unregister listener. * Remove concrete listener by name and itself definition. */ off: (name?: MyEvent["name"], fn?: MyEvent["fn"]) => this; removeEventListener: (name?: MyEvent["name"], fn?: MyEvent["fn"]) => this; removeListener: (name?: MyEvent["name"], fn?: MyEvent["fn"]) => this; unbind: (name?: MyEvent["name"], fn?: MyEvent["fn"]) => this; /** * Trigger event. * All of listeners waiting for emit event will be executed. */ emit: (name: MyEvent["name"], payload?: any) => this; dispatchEventListener: (name: MyEvent["name"], payload?: any) => this; dispatchListener: (name: MyEvent["name"], payload?: any) => this; trigger: (name: MyEvent["name"], payload?: any) => this; static mixin: >(target: T) => T & Record; static VERSION: string; } export {};