import { Disposable, EmittableEventBus, Event, EventBus, EventListener, ObservableEventBus, Removable, SubscribeOptions } from "@tmorin/ceb-messaging-core";
/**
 * The symbol used to register {@link SimpleEventBus}.
 */
export declare const SimpleEventBusSymbol: unique symbol;
export declare class SimpleEventBus implements EventBus, Disposable {
    private readonly emitter;
    private readonly listeners;
    constructor(emitter: EmittableEventBus, listeners?: Map<string, Set<EventListener<any>>>);
    get observe(): ObservableEventBus;
    publish<E extends Event = Event>(...events: Array<E>): void;
    subscribe<E extends Event = Event>(eventType: string, listener: EventListener<E>, options?: Partial<SubscribeOptions>): Removable;
    dispose(): Promise<void>;
}
