import type { Service } from './util/service.js';
export declare abstract class BaseEventBusService<E extends string = string> implements Service {
    abstract send(eventName: E, data?: unknown): void;
    abstract on<T>(eventName: E, listener: (data: T) => void): void;
    abstract once<T>(eventName: E, listener: (data: T) => void): void;
    abstract off<T>(eventName: E, listener: (data: T) => void): void;
    sendAndWait<T>(sendEventName: E, successEventName: E, errorEventName: E, data?: unknown): Promise<T>;
    abstract start(): Promise<void>;
    abstract stop(): Promise<void>;
}
