react-native-unit-components
Version:
Unit React Native components
37 lines • 1.19 kB
TypeScript
import type { EventMap } from './EventBus.types';
export type EventCallback<K extends keyof EventMap> = (data: EventMap[K]) => void;
declare class EventBus {
private debug;
private listeners;
private eventQueue;
private isProcessing;
/**
* Subscribe to an event
* @returns Unsubscribe function
*/
on<K extends keyof EventMap>(eventKey: K, callback: EventCallback<K>): () => void;
/**
* Emit an event - queues it for processing to ensure all events are delivered
*/
emit<K extends keyof EventMap>(eventKey: K, data: EventMap[K]): void;
/**
* Process events from queue sequentially
* This ensures rapid successive events are all delivered
*/
private processQueue;
/**
* Remove all listeners for an event
*/
off<K extends keyof EventMap>(eventKey: K): void;
/**
* Get number of listeners for an event (useful for debugging)
*/
listenerCount<K extends keyof EventMap>(eventKey: K): number;
/**
* Enable or disable debug logging
*/
setDebug(enabled: boolean): void;
}
export declare const eventBus: EventBus;
export {};
//# sourceMappingURL=EventBus.d.ts.map