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/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.common?activeTa

21 lines (19 loc) 1.11 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, Array<{ 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 };