export type IEventListener < TEvent > = ( e ? : TEvent ) => void ; export type IEventListenerDisposer = ( ) => void ; export interface IEventEmitter < TEvent > { emit ( e ? ) : void ; subscribe ( listener ) : IEventListenerDisposer ; dispose ( ) : void ; }