UNPKG

shipy-sdk-js

Version:

Shipy Payment Gateway SDK for JavaScript/TypeScript

45 lines (44 loc) 1.73 kB
import { CallbackData } from '../types'; import { IEventEmitter } from '../interfaces/IEventEmitter'; export type EventCallback<T = any> = (data: T) => void; export interface EventMap { 'payment.success': CallbackData; 'payment.failed': CallbackData; 'payment.pending': CallbackData; 'payment.cancelled': CallbackData; 'callback.received': CallbackData; 'error': Error; } export declare class EventEmitter implements IEventEmitter { private events; /** * Subscribe to an event * @param event The event name to subscribe to * @param callback The callback function to execute when the event is emitted * @returns A function to unsubscribe from the event */ on<K extends keyof EventMap>(event: K, callback: EventCallback<EventMap[K]>): () => void; /** * Subscribe to an event once * @param event The event name to subscribe to * @param callback The callback function to execute when the event is emitted */ once<K extends keyof EventMap>(event: K, callback: EventCallback<EventMap[K]>): void; /** * Emit an event * @param event The event name to emit * @param data The data to pass to the event handlers */ emit<K extends keyof EventMap>(event: K, data: EventMap[K]): void; /** * Remove all listeners for a specific event * @param event The event name to remove listeners from */ removeAllListeners<K extends keyof EventMap>(event: K): void; /** * Get the number of listeners for a specific event * @param event The event name to get listener count for * @returns The number of listeners for the event */ listenerCount<K extends keyof EventMap>(event: K): number; }