vue-hooks-plus
Version:
Vue hooks library
28 lines (27 loc) • 894 B
TypeScript
type SubscriptionParams<T = any> = {
params: T;
event: string | number;
};
type Subscription<T> = ({ params, event }: SubscriptionParams<T>) => void;
declare class EventEmitter<T> {
private subscriptions;
private emitEffectCache;
constructor();
/**
* Subscribe to the event
* @param event string
* @param listener Subscription<T>
*/
useSubscription: (event: string, listener?: Subscription<T>) => void;
/**
* Send an event notification
* @param event string | number
* @param args T extends any[] ? any[] : any
*/
emit: (event: string | number, ...args: T extends any[] ? any[] : any) => void;
emitEffect: (event: string | number) => void;
removeListener: (event: string) => void;
clear: () => void;
}
declare const eventEmitterOverall: EventEmitter<unknown>;
export { EventEmitter, eventEmitterOverall };