@deephaven/golden-layout
Version:
A multi-screen javascript Layout manager
30 lines • 1.85 kB
TypeScript
import EventEmitter from './EventEmitter';
type AsArray<P> = P extends unknown[] ? P : [P];
export type EventHandlerFunction<P = []> = (...parameters: AsArray<P>) => void;
export type EventListenerRemover = () => void;
export type EventListenFunction<TParameters = []> = (eventEmitter: EventEmitter, handler: EventHandlerFunction<TParameters>) => EventListenerRemover;
export type EventEmitFunction<TParameters = []> = (eventEmitter: EventEmitter, ...parameters: AsArray<TParameters>) => void;
export type EventListenerHook<TParameters = []> = (eventEmitter: EventEmitter | null | undefined, handler: EventHandlerFunction<TParameters>) => void;
/**
* Listen for an event
* @param eventEmitter The event emitter to listen to
* @param event The event to listen for
* @param handler The handler to call when the event is emitted
* @returns A function to stop listening for the event
*/
export declare function listenForEvent<TParameters = []>(eventEmitter: EventEmitter, event: string, handler: EventHandlerFunction<TParameters>): EventListenerRemover;
export declare function makeListenFunction<TParameters = []>(event: string): EventListenFunction<TParameters>;
export declare function makeEmitFunction<TParameters = []>(event: string): EventEmitFunction<TParameters>;
export declare function makeUseListenerFunction<TParameters = []>(event: string): EventListenerHook<TParameters>;
/**
* Create listener, emitter, and hook functions for an event
* @param event Name of the event to create functions for
* @returns Listener, Emitter, and Hook functions for the event
*/
export declare function makeEventFunctions<TParameters = []>(event: string): {
listen: EventListenFunction<TParameters>;
emit: EventEmitFunction<TParameters>;
useListener: EventListenerHook<TParameters>;
};
export {};
//# sourceMappingURL=EventUtils.d.ts.map