import { EventBus, EventBusOptions, PublishOptions, SubscribeOptions } from '../../interfaces'; import { CloudEvent, EventType } from '../../types'; export declare class RabbitMQEventBus implements EventBus { private connection?; private channel?; private readonly options; private readonly MAX_RETRIES; private readonly RETRY_DELAYS; constructor(options: EventBusOptions); init(): Promise; private setupDeadLetterHandling; private handleDeadLetter; private notifyDeadLetter; private incrementDeadLetterMetrics; publish(event: CloudEvent, options?: PublishOptions): Promise; private handleMessage; subscribe(type: EventType | EventType[], handler: (event: CloudEvent) => Promise, options?: SubscribeOptions): Promise; private reconnect; private handleConnectionError; private handleConnectionClosed; private handleChannelError; private handleChannelClosed; unsubscribe(consumerTag: string): Promise; close(): Promise; }