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 reconnectAttempts; private messageStore; private boundQueues; private idempotencyStore; 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); private validateState; init(): Promise; private republishStoredMessages; private hasBindingForRoutingKey; private handleUnroutableMessage; private connect; private setupExchangesAndQueues; private setupEventHandlers; private handleConnectionError; private handleConnectionClosed; private handleChannelError; private handleChannelClosed; private reconnect; private recreateChannel; private setupDeadLetterConsumer; private extractDeadLetterDetails; private handleDeadLetter; private shouldAttemptRecovery; private attemptMessageRecovery; private notifyDeadLetter; private incrementDeadLetterMetrics; publish(event: CloudEvent, options?: PublishOptions): Promise; subscribe(type: E | E[], handler: (event: CloudEvent) => Promise, options?: SubscribeOptions): Promise; private handleMessage; private handleRetryableError; private handleNonRetryableError; unsubscribe(consumerTag: string): Promise; close(): Promise; }