@unchainedshop/events
Version:
Event emitter abstraction layer for the Unchained Engine
18 lines (17 loc) • 800 B
TypeScript
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;
};