import { EmitterSubscription } from "react-native"; /** * An EventEmitter that supports events given by the interface in {T} * Where each Key represents the eventName and the type represents the payload * * @export * @interface TypedEventEmitter * @template T */ export default interface TypedEventEmitter { addListener(event: K, listener: (v: T[K]) => void): EmitterSubscription; /** * @deprecated Use `remove` on the EventSubscription from `addListener`. */ removeListener(event: K, listener: (v: T[K]) => void): void; removeAllListeners(event?: K): void; emit(event: K, args: T[K]): void; eventNames(): Array; listenerCount(type: K): number; /** * @deprecated Use `addListener` instead. */ on(name: K, listener: (v: T[K]) => void): EmitterSubscription; /** * @deprecated Use `remove` on the EventSubscription from `addListener`. */ off(event: K, listener: (v: T[K]) => void): void; }