UNPKG

evently-react

Version:

A Hook-Based Framework for Event-Driven React Apps

26 lines (25 loc) 1.02 kB
import { Events } from '../types'; import { Logger } from '../utils'; type EventCallback<E extends keyof Events> = (payload?: Events[E]) => void; type Middleware<E extends keyof Events> = (event: E, payload: Events[E]) => Events[E]; interface EventBusOptions { cacheTTL?: number; cacheEnabled?: boolean; logger?: typeof Logger; } export declare class EventBus { private events; private globalMiddlewares; private eventSpecificMiddlewares; private cache; private cacheTTL; private cacheEnabled; private logger; constructor(options?: EventBusOptions); emit<E extends keyof Events>(event: E, payload?: Events[E]): void; subscribe<E extends keyof Events>(event: E, callback: EventCallback<E>, priority?: number): () => void; unsubscribe<E extends keyof Events>(event: E, callback: EventCallback<E>): void; use<E extends keyof Events>(middleware: Middleware<E>): void; useForEvent<E extends keyof Events>(event: E, middleware: Middleware<E>): void; } export {};