@orca-fe/hooks
Version:
React Hooks Collections
14 lines (13 loc) • 765 B
TypeScript
type Callback = (...args: any[]) => void;
type KeyFunctions = Record<string, Callback>;
export interface IEventEmitter<T extends KeyFunctions> {
emit<EventName extends keyof T>(eventName: EventName, ...args: Parameters<T[EventName]>): void;
useSubscription<EventName extends keyof T>(eventName: EventName, callback: T[EventName]): void;
}
export declare class EventEmitterWithHook<T extends KeyFunctions> implements IEventEmitter<T> {
private readonly eventEmitter;
emit: <EventName extends keyof T>(eventName: EventName, ...args: any[]) => void;
useSubscription: <EventName extends keyof T>(eventName: EventName, callback: T[EventName]) => void;
}
export default function useEventEmitter<T extends KeyFunctions>(): IEventEmitter<T>;
export {};