import type { EmptyObject } from '../../../framework-types/BaseTypes'; import type { ContextHaving } from '../../../framework-types/execution-context/Types'; import type { BaseContext } from '../../../framework-types/Types'; import type { BundleExportNames } from '../../bundles/Types'; import type { Logger } from '../core/utils/Logger'; export type EventBase = { timestamp: number; type: string; }; export type EventListener = (event: Event & EventBase) => void; export type EventBusContext = ContextHaving<{ [BundleExportNames.Logger]: Logger; }, EmptyObject, BaseContext>; export type EventBus = { on(name: Name, listener: EventListener): void; off(name: Name, listener: EventListener): void; dispatch(context: EventBusContext, name: Name, event: Omit & Partial): void; }; export declare enum EventBusExportNames { CreateEventBus = "create-event-bus" }