shipy-sdk-js
Version:
Shipy Payment Gateway SDK for JavaScript/TypeScript
45 lines (44 loc) • 1.73 kB
TypeScript
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;
}