interface ISubscription { unsubscribe: () => void; } interface IEventBus { subscribe(subscriber: S): ISubscription; unsubscribe(subscriber: S): void; next(data: P): Promise; } interface IAsyncEventBusSubscriber { priority: number; callback: T; } export { IEventBus, ISubscription, IAsyncEventBusSubscriber };