UNPKG

@unchainedshop/events

Version:

Event emitter abstraction layer for the Unchained Engine

18 lines (17 loc) 800 B
export interface RawPayloadType<T> { payload: T; } export interface EmitAdapter { publish(eventName: string, data: RawPayloadType<Record<string, any>>): void; subscribe(eventName: string, callback: (payload: RawPayloadType<Record<string, any>>) => void): void; } export declare const EventDirector: { registerEvents: (events: string[]) => void; getRegisteredEvents: () => string[]; setEmitAdapter: (adapter: EmitAdapter) => void; getEmitAdapter: () => EmitAdapter; setEmitHistoryAdapter: (adapter: EmitAdapter) => void; getEmitHistoryAdapter: () => EmitAdapter; emit: (eventName: string, data?: Record<string, any>) => Promise<void>; subscribe: <T extends Record<string, any>>(eventName: string, callback: (payload: RawPayloadType<T>) => void) => void; };