@file:Suppress( "INTERFACE_WITH_SUPERCLASS", "OVERRIDING_FINAL_MEMBER", "RETURN_TYPE_MISMATCH_ON_OVERRIDE", "CONFLICTING_OVERLOADS", "EXTERNAL_DELEGATION" ) @file:JsModule("eventemitter2") @file: JsNonModule package hep.dataforge.vis.spatial.editor import kotlin.js.Promise //typealias eventNS = Array<String> external interface ConstructorOptions { var wildcard: Boolean? get() = definedExternally; set(value) = definedExternally var delimiter: String? get() = definedExternally; set(value) = definedExternally var newListener: Boolean? get() = definedExternally; set(value) = definedExternally var maxListeners: Number? get() = definedExternally; set(value) = definedExternally var verboseMemoryLeak: Boolean? get() = definedExternally; set(value) = definedExternally } external interface EventAndListener { @nativeInvoke operator fun invoke(event: String, vararg values: Any) @nativeInvoke operator fun invoke(event: Array<String>, vararg values: Any) } external open class EventEmitter2(options: ConstructorOptions? = definedExternally /* null */) { open fun emit(event: String, vararg values: Any): Boolean open fun emit(event: Array<String>, vararg values: Any): Boolean open fun emitAsync(event: String, vararg values: Any): Promise<Array<Any>> open fun emitAsync(event: Array<String>, vararg values: Any): Promise<Array<Any>> open fun addListener(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun on(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun on(event: Array<String>, listener: Function<*>): EventEmitter2 /* this */ open fun prependListener(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun prependListener(event: Array<String>, listener: Function<*>): EventEmitter2 /* this */ open fun once(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun once(event: Array<String>, listener: Function<*>): EventEmitter2 /* this */ open fun prependOnceListener(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun prependOnceListener(event: Array<String>, listener: Function<*>): EventEmitter2 /* this */ open fun many(event: String, timesToListen: Number, listener: Function<*>): EventEmitter2 /* this */ open fun many(event: Array<String>, timesToListen: Number, listener: Function<*>): EventEmitter2 /* this */ open fun prependMany(event: String, timesToListen: Number, listener: Function<*>): EventEmitter2 /* this */ open fun prependMany(event: Array<String>, timesToListen: Number, listener: Function<*>): EventEmitter2 /* this */ open fun onAny(listener: EventAndListener): EventEmitter2 /* this */ open fun prependAny(listener: EventAndListener): EventEmitter2 /* this */ open fun offAny(listener: Function<*>): EventEmitter2 /* this */ open fun removeListener(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun removeListener(event: Array<String>, listener: Function<*>): EventEmitter2 /* this */ open fun off(event: String, listener: Function<*>): EventEmitter2 /* this */ open fun removeAllListeners(event: String? = definedExternally /* null */): EventEmitter2 /* this */ open fun removeAllListeners(event: Array<String>? = definedExternally /* null */): EventEmitter2 /* this */ open fun setMaxListeners(n: Number) open fun eventNames(): Array<String> open fun listeners(event: String): Array<Function<*>> open fun listeners(event: Array<String>): Array<Function<*>> open fun listenersAny(): Array<Function<*>> open fun removeAllListeners(): EventEmitter2 /* this */ }