import { BaseEventBusService } from '../../../base-event-bus.service.js';
import type { Logger } from '../../../util/logger.js';
export type RabbitmqEventBusServiceConfig = {
    logger?: Logger;
    url?: string;
};
export default class RabbitmqEventBusService<E extends string = string> extends BaseEventBusService<E> {
    #private;
    static readonly DEFAULT_USERNAME: string;
    static readonly DEFAULT_PASSWORD: string;
    static readonly DEFAULT_URL: string;
    constructor(config: RabbitmqEventBusServiceConfig);
    on<T>(eventName: E, listener: (data: T) => void): void;
    once<T>(eventName: E, listener: (data: T) => void): void;
    off(eventName: E): void;
    send(eventName: E, data?: unknown): void;
    sendAndWait<T>(sendEventName: E, successEventName: E, errorEventName: E, data?: unknown): Promise<T>;
    start(): Promise<void>;
    stop(): Promise<void>;
}
