import { EventBus, EventBusOptions, PublishOptions, SubscribeOptions } from "../../interfaces"; import { CloudEvent } from "../../types"; export declare class RabbitMQEventBus implements EventBus { private connection?; private channel?; private readonly options; private isInitialized; private disableReconnection; private reconnectAttempts; private messageStore; private boundQueues; private idempotencyStore; private connectionHandler; private messageHandler?; private deadLetterHandler?; private readonly MAX_RETRIES; private readonly RETRY_DELAYS; private readonly RECONNECT_DELAY; private readonly MAX_RECONNECT_ATTEMPTS; private readonly DLQ_RETENTION; private readonly QUEUE_MAX_LENGTH; constructor(options: EventBusOptions); setDisableReconnection(value: boolean): void; private validateState; init(): Promise; private connect; private initializeHandlers; private setupExchangesAndQueues; private setupEventHandlers; private handleUnroutableMessage; private republishStoredMessages; private hasBindingForRoutingKey; publish(event: CloudEvent, options?: PublishOptions): Promise; subscribe(type: E | E[], handler: (event: CloudEvent) => Promise, options?: SubscribeOptions): Promise; private reconnect; private recreateChannel; unsubscribe(consumerTag: string): Promise; close(): Promise; }