@polymindslabs/widget-sdk
Version:
Universal Job Widget SDK for embedding job boards and apply buttons
47 lines (46 loc) • 1.38 kB
TypeScript
/**
* Event Emitter for Inzif Widget SDK
*/
import type { WidgetEvents } from './types';
type EventCallback<T = any> = (data: T) => void;
type EventName = keyof WidgetEvents;
export declare class EventEmitter {
private events;
/**
* Subscribe to an event
*/
on<E extends EventName>(event: E, callback: EventCallback<WidgetEvents[E]>): void;
/**
* Subscribe to an event (alias for on)
*/
addEventListener<E extends EventName>(event: E, callback: EventCallback<WidgetEvents[E]>): void;
/**
* Unsubscribe from an event
*/
off<E extends EventName>(event: E, callback: EventCallback<WidgetEvents[E]>): void;
/**
* Unsubscribe from an event (alias for off)
*/
removeEventListener<E extends EventName>(event: E, callback: EventCallback<WidgetEvents[E]>): void;
/**
* Subscribe to an event once
*/
once<E extends EventName>(event: E, callback: EventCallback<WidgetEvents[E]>): void;
/**
* Emit an event
*/
emit<E extends EventName>(event: E, data: WidgetEvents[E]): void;
/**
* Remove all event listeners
*/
removeAllListeners(event?: EventName): void;
/**
* Get event listener count
*/
listenerCount(event: EventName): number;
/**
* Get all event names that have listeners
*/
eventNames(): EventName[];
}
export {};