diff --git a/EventEmitter.d.ts b/EventEmitter.d.ts new file mode 100644 index 0000000..e175fee --- /dev/null +++ b/EventEmitter.d.ts @@ -0,0 +1,41 @@ +type EventKey = string|RegExp; + +interface EventMap { + [evt: string]: EventKey; +} + +type Events = EventKey|EventMap; + +interface Listener { + listener: Function; + once: boolean; +} + +interface ListenerMap { + [evt: string]: Listener[]; +} + +type Listeners = Listener[]|ListenerMap; + +declare class EventEmitter { + getListeners(evt: EventKey): Listeners; + flattenListeners(listeners: Listener[]): void; + getListenersAsObject(evt: EventKey): ListenerMap; + addListener(evt: EventKey, listener: Listener|Function): this; + on(evt: EventKey, listener: Listener|Function): this; + addOnceListener(evt: EventKey, listener: Function): this; + once(evt: EventKey, listener: Function): this; + defineEvent(evt: EventKey): this; + defineEvents(evts: EventKey[]): this; + removeListener(evt: EventKey, listener: Function): this; + off(evt: EventKey, listener: Function): this; + addListeners(evt: Events, listeners: Function[]): this; + removeListeners(evt: Events, listeners: Function[]): this; + manipulateListeners(remove: boolean, evt: Events, listeners: Function[]): this; + removeEvent(evt: EventKey): this; + removeAllListeners(evt: EventKey): this; + emitEvent(evt: EventKey, args?: any[]): this; + trigger(evt: EventKey, args?: any[]): this; + emit(evt: EventKey): this; + setOnceReturnValue(value: any): this; +} diff --git a/package.json b/package.json index f5b9b96..d980dfd 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "5.1.0", "description": "Event based JavaScript for the browser", "main": "EventEmitter.js", + "types": "EventEmitter.d.ts", "directories": { "doc": "docs", "test": "tests"