@dbs-portal/core-module-registry
Version:
Core module registry system for automatic module discovery and registration
84 lines • 2.62 kB
TypeScript
/**
* Browser Event Emitter
*
* Browser-compatible event emitter that provides the same API as Node.js EventEmitter
* but works in both browser and Node.js environments without external dependencies.
*/
export type EventListener = (...args: any[]) => void;
export interface EventEmitterInterface {
on(event: string, listener: EventListener): this;
once(event: string, listener: EventListener): this;
off(event: string, listener: EventListener): this;
emit(event: string, ...args: any[]): boolean;
removeAllListeners(event?: string): this;
listenerCount(event: string): number;
listeners(event: string): EventListener[];
}
export declare class BrowserEventEmitter implements EventEmitterInterface {
private events;
private onceEvents;
private maxListeners;
/**
* Add a listener for the specified event
*/
on(event: string, listener: EventListener): this;
/**
* Add a one-time listener for the specified event
*/
once(event: string, listener: EventListener): this;
/**
* Remove a listener for the specified event
*/
off(event: string, listener: EventListener): this;
/**
* Emit an event to all listeners
*/
emit(event: string, ...args: any[]): boolean;
/**
* Remove all listeners for a specific event or all events
*/
removeAllListeners(event?: string): this;
/**
* Get the number of listeners for an event
*/
listenerCount(event: string): number;
/**
* Get all listeners for an event
*/
listeners(event: string): EventListener[];
/**
* Set the maximum number of listeners before warning
*/
setMaxListeners(n: number): this;
/**
* Get the maximum number of listeners
*/
getMaxListeners(): number;
/**
* Get all event names that have listeners
*/
eventNames(): string[];
/**
* Add listener (alias for on)
*/
addListener(event: string, listener: EventListener): this;
/**
* Remove listener (alias for off)
*/
removeListener(event: string, listener: EventListener): this;
/**
* Prepend listener to the beginning of the listeners array
*/
prependListener(event: string, listener: EventListener): this;
/**
* Prepend one-time listener
*/
prependOnceListener(event: string, listener: EventListener): this;
/**
* Emit error event safely
*/
private emitError;
}
export declare const defaultEventEmitter: BrowserEventEmitter;
export default BrowserEventEmitter;
//# sourceMappingURL=BrowserEventEmitter.d.ts.map