UNPKG

@microsoft/teams.common

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.common" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.common" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.common?activeTab=code"

21 lines (19 loc) 1.1 kB
type EventHandler<T = any> = (data: T) => void | Promise<void>; interface IEventEmitter<EventTypes = Record<string, any>> { on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; off(id: number): void; emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]): void; } declare class EventEmitter<EventTypes = Record<string, any>> implements IEventEmitter<EventTypes> { protected index: number; protected subscriptions: Map<keyof EventTypes, { readonly id: number; readonly handler: EventHandler; }[]>; on<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; once<Event extends keyof EventTypes>(event: Event, handler: EventHandler<EventTypes[Event]>): number; off(id: number): void; emit<Event extends keyof EventTypes>(event: Event, value: EventTypes[Event]): void; } export { EventEmitter, type EventHandler, type IEventEmitter };