# @probitas/client-rabbitmq > Version: 0.5.0 RabbitMQ client for [Probitas](https://github.com/probitas-test/probitas) scenario testing framework. This package provides a RabbitMQ client designed for integration testing of message-driven applications. ## Features - **Queue Operations**: Declare, bind, purge, and delete queues - **Exchange Operations**: Declare and delete exchanges (direct, topic, fanout, headers) - **Publishing**: Publish messages with routing keys and headers - **Consuming**: Consume messages with acknowledgment support - **Resource Management**: Implements `AsyncDisposable` for proper cleanup ## Installation ```bash deno add jsr:@probitas/client-rabbitmq ``` ## Quick Start ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; // Using string URL const client = await createRabbitMqClient({ url: "amqp://localhost:5672", }); // Or using connection config object const client2 = await createRabbitMqClient({ url: { host: "localhost", port: 5672, username: "guest", password: "guest", vhost: "/", }, }); // Create a channel const channel = await client.channel(); // Declare a queue await channel.assertQueue("test-queue", { durable: true }); // Publish a message const content = new TextEncoder().encode("Hello, World!"); await channel.sendToQueue("test-queue", content, { contentType: "text/plain", }); // Consume messages for await (const msg of channel.consume("test-queue")) { console.log("Received:", new TextDecoder().decode(msg.content)); await channel.ack(msg); break; } await client.close(); await client2.close(); ``` ## Exchange and Binding ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const client = await createRabbitMqClient({ url: "amqp://localhost:5672" }); const channel = await client.channel(); // Declare an exchange await channel.assertExchange("events", "topic", { durable: true }); // Declare a queue and bind to exchange await channel.assertQueue("user-events"); await channel.bindQueue("user-events", "events", "user.*"); // Publish to exchange with routing key const content = new TextEncoder().encode(JSON.stringify({ id: 1, name: "Alice" })); await channel.publish("events", "user.created", content, { contentType: "application/json", }); await client.close(); ``` ## Using with `using` Statement ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; await using client = await createRabbitMqClient({ url: "amqp://localhost:5672" }); const channel = await client.channel(); await channel.assertQueue("test"); // Client automatically closed when scope exits ``` ## Related Packages | Package | Description | |---------|-------------| | [`@probitas/client`](https://jsr.io/@probitas/client) | Core utilities and types | | [`@probitas/client-sqs`](https://jsr.io/@probitas/client-sqs) | AWS SQS client | ## Links - [GitHub Repository](https://github.com/probitas-test/probitas-client) - [Probitas Framework](https://github.com/probitas-test/probitas) - [RabbitMQ](https://www.rabbitmq.com/) ## Classes ### `RabbitMqError` ```typescript class RabbitMqError extends ClientError ``` Base error class for RabbitMQ client errors. **Constructor:** ```typescript new RabbitMqError(message: string, _: unknown, options?: RabbitMqErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `code?`: `number` --- ### `RabbitMqConnectionError` ```typescript class RabbitMqConnectionError extends RabbitMqError ``` Error thrown when a RabbitMQ connection cannot be established. **Constructor:** ```typescript new RabbitMqConnectionError(message: string, options?: RabbitMqErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"connection"` --- ### `RabbitMqChannelError` ```typescript class RabbitMqChannelError extends RabbitMqError ``` Error thrown when a RabbitMQ channel operation fails. **Constructor:** ```typescript new RabbitMqChannelError(message: string, options?: RabbitMqChannelErrorOptions) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"channel"` - [readonly] `channelId?`: `number` --- ### `RabbitMqNotFoundError` ```typescript class RabbitMqNotFoundError extends RabbitMqError ``` Error thrown when a RabbitMQ resource (queue or exchange) is not found. **Constructor:** ```typescript new RabbitMqNotFoundError( message: string, options: RabbitMqNotFoundErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"not_found"` - [readonly] `resource`: `string` --- ### `RabbitMqPreconditionFailedError` ```typescript class RabbitMqPreconditionFailedError extends RabbitMqError ``` Error thrown when a RabbitMQ precondition check fails. **Constructor:** ```typescript new RabbitMqPreconditionFailedError( message: string, options: RabbitMqPreconditionFailedErrorOptions, ) ``` **Properties:** - [readonly] `name`: `string` - [readonly] `kind`: `"precondition_failed"` - [readonly] `reason`: `string` --- ## Interfaces ### `RabbitMqMessageProperties` ```typescript interface RabbitMqMessageProperties ``` RabbitMQ message properties. **Properties:** - [readonly] `contentType?`: `string` - [readonly] `contentEncoding?`: `string` - [readonly] `headers?`: `Record` - [readonly] `deliveryMode?`: `1 | 2` — 1: non-persistent, 2: persistent - [readonly] `priority?`: `number` - [readonly] `correlationId?`: `string` - [readonly] `replyTo?`: `string` - [readonly] `expiration?`: `string` - [readonly] `messageId?`: `string` - [readonly] `timestamp?`: `number` - [readonly] `type?`: `string` - [readonly] `userId?`: `string` - [readonly] `appId?`: `string` --- ### `RabbitMqMessageFields` ```typescript interface RabbitMqMessageFields ``` RabbitMQ message fields. **Properties:** - [readonly] `deliveryTag`: `bigint` - [readonly] `redelivered`: `boolean` - [readonly] `exchange`: `string` - [readonly] `routingKey`: `string` --- ### `RabbitMqMessage` ```typescript interface RabbitMqMessage ``` RabbitMQ message. **Properties:** - [readonly] `content`: `Uint8Array` - [readonly] `properties`: `RabbitMqMessageProperties` - [readonly] `fields`: `RabbitMqMessageFields` --- ### `RabbitMqConnectionConfig` ```typescript interface RabbitMqConnectionConfig extends CommonConnectionConfig ``` RabbitMQ connection configuration. Extends CommonConnectionConfig with RabbitMQ-specific options. **Properties:** - [readonly] `vhost?`: `string` — Virtual host. --- ### `RabbitMqClientConfig` ```typescript interface RabbitMqClientConfig extends CommonOptions ``` RabbitMQ client configuration. **Properties:** - [readonly] `url`: `string | RabbitMqConnectionConfig` — RabbitMQ connection URL or configuration object. - [readonly] `heartbeat?`: `number` — Heartbeat interval in seconds - [readonly] `prefetch?`: `number` — Default prefetch count for channels - [readonly] `throwOnError?`: `boolean` — Whether to throw errors instead of returning them in results. --- ### `RabbitMqOptions` ```typescript interface RabbitMqOptions extends CommonOptions ``` Base options for RabbitMQ operations. **Properties:** - [readonly] `throwOnError?`: `boolean` — Whether to throw errors instead of returning them in results. Overrides the client-level `throwOnError` setting. --- ### `RabbitMqExchangeOptions` ```typescript interface RabbitMqExchangeOptions extends RabbitMqOptions ``` Exchange options. **Properties:** - [readonly] `durable?`: `boolean` - [readonly] `autoDelete?`: `boolean` - [readonly] `internal?`: `boolean` - [readonly] `arguments?`: `Record` --- ### `RabbitMqQueueOptions` ```typescript interface RabbitMqQueueOptions extends RabbitMqOptions ``` Queue options. **Properties:** - [readonly] `durable?`: `boolean` - [readonly] `exclusive?`: `boolean` - [readonly] `autoDelete?`: `boolean` - [readonly] `arguments?`: `Record` - [readonly] `messageTtl?`: `number` - [readonly] `maxLength?`: `number` - [readonly] `deadLetterExchange?`: `string` - [readonly] `deadLetterRoutingKey?`: `string` --- ### `RabbitMqPublishOptions` ```typescript interface RabbitMqPublishOptions extends RabbitMqOptions ``` Publish options. **Properties:** - [readonly] `persistent?`: `boolean` - [readonly] `contentType?`: `string` - [readonly] `contentEncoding?`: `string` - [readonly] `headers?`: `Record` - [readonly] `correlationId?`: `string` - [readonly] `replyTo?`: `string` - [readonly] `expiration?`: `string` - [readonly] `messageId?`: `string` - [readonly] `priority?`: `number` --- ### `RabbitMqConsumeOptions` ```typescript interface RabbitMqConsumeOptions extends RabbitMqOptions ``` Consume options. **Properties:** - [readonly] `noAck?`: `boolean` - [readonly] `exclusive?`: `boolean` - [readonly] `priority?`: `number` --- ### `RabbitMqNackOptions` ```typescript interface RabbitMqNackOptions extends RabbitMqOptions ``` Nack options. **Properties:** - [readonly] `requeue?`: `boolean` - [readonly] `allUpTo?`: `boolean` --- ### `RabbitMqRejectOptions` ```typescript interface RabbitMqRejectOptions extends RabbitMqOptions ``` Reject options. **Properties:** - [readonly] `requeue?`: `boolean` --- ### `RabbitMqChannel` ```typescript interface RabbitMqChannel extends AsyncDisposable ``` RabbitMQ channel interface. **Methods:** ```typescript assertExchange( name: string, type: RabbitMqExchangeType, options?: RabbitMqExchangeOptions, ): Promise ``` ```typescript deleteExchange( name: string, options?: RabbitMqOptions, ): Promise ``` ```typescript assertQueue( name: string, options?: RabbitMqQueueOptions, ): Promise ``` ```typescript deleteQueue( name: string, options?: RabbitMqOptions, ): Promise ``` ```typescript purgeQueue( name: string, options?: RabbitMqOptions, ): Promise ``` ```typescript bindQueue( queue: string, exchange: string, routingKey: string, options?: RabbitMqOptions, ): Promise ``` ```typescript unbindQueue( queue: string, exchange: string, routingKey: string, options?: RabbitMqOptions, ): Promise ``` ```typescript publish( exchange: string, routingKey: string, content: Uint8Array, options?: RabbitMqPublishOptions, ): Promise ``` ```typescript sendToQueue( queue: string, content: Uint8Array, options?: RabbitMqPublishOptions, ): Promise ``` ```typescript get(queue: string, options?: RabbitMqOptions): Promise ``` ```typescript consume( queue: string, options?: RabbitMqConsumeOptions, ): AsyncIterable ``` ```typescript ack( message: RabbitMqMessage, options?: RabbitMqOptions, ): Promise ``` ```typescript nack( message: RabbitMqMessage, options?: RabbitMqNackOptions, ): Promise ``` ```typescript reject( message: RabbitMqMessage, options?: RabbitMqRejectOptions, ): Promise ``` ```typescript prefetch(count: number): Promise ``` ```typescript close(): Promise ``` --- ### `RabbitMqClient` ```typescript interface RabbitMqClient extends AsyncDisposable ``` RabbitMQ client interface. **Properties:** - [readonly] `config`: `RabbitMqClientConfig` **Methods:** ```typescript channel(): Promise ``` ```typescript close(): Promise ``` --- ### `RabbitMqErrorOptions` ```typescript interface RabbitMqErrorOptions extends ErrorOptions ``` Options for RabbitMQ errors. **Properties:** - [readonly] `code?`: `number` --- ### `RabbitMqChannelErrorOptions` ```typescript interface RabbitMqChannelErrorOptions extends RabbitMqErrorOptions ``` Options for RabbitMQ channel errors. **Properties:** - [readonly] `channelId?`: `number` --- ### `RabbitMqNotFoundErrorOptions` ```typescript interface RabbitMqNotFoundErrorOptions extends RabbitMqErrorOptions ``` Options for RabbitMQ not found errors. **Properties:** - [readonly] `resource`: `string` --- ### `RabbitMqPreconditionFailedErrorOptions` ```typescript interface RabbitMqPreconditionFailedErrorOptions extends RabbitMqErrorOptions ``` Options for RabbitMQ precondition failed errors. **Properties:** - [readonly] `reason`: `string` --- ### `RabbitMqPublishResultSuccess` ```typescript interface RabbitMqPublishResultSuccess extends RabbitMqPublishResultBase ``` Successful publish result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` --- ### `RabbitMqPublishResultError` ```typescript interface RabbitMqPublishResultError extends RabbitMqPublishResultBase ``` Publish result with RabbitMQ error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqOperationError` --- ### `RabbitMqPublishResultFailure` ```typescript interface RabbitMqPublishResultFailure extends RabbitMqPublishResultBase ``` Publish result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqFailureError` --- ### `RabbitMqConsumeResultSuccess` ```typescript interface RabbitMqConsumeResultSuccess extends RabbitMqConsumeResultBase ``` Successful consume result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `message`: `RabbitMqMessage | null` --- ### `RabbitMqConsumeResultError` ```typescript interface RabbitMqConsumeResultError extends RabbitMqConsumeResultBase ``` Consume result with RabbitMQ error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqOperationError` - [readonly] `message`: `null` --- ### `RabbitMqConsumeResultFailure` ```typescript interface RabbitMqConsumeResultFailure extends RabbitMqConsumeResultBase ``` Consume result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqFailureError` - [readonly] `message`: `null` --- ### `RabbitMqAckResultSuccess` ```typescript interface RabbitMqAckResultSuccess extends RabbitMqAckResultBase ``` Successful ack result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` --- ### `RabbitMqAckResultError` ```typescript interface RabbitMqAckResultError extends RabbitMqAckResultBase ``` Ack result with RabbitMQ error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqOperationError` --- ### `RabbitMqAckResultFailure` ```typescript interface RabbitMqAckResultFailure extends RabbitMqAckResultBase ``` Ack result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqFailureError` --- ### `RabbitMqQueueResultSuccess` ```typescript interface RabbitMqQueueResultSuccess extends RabbitMqQueueResultBase ``` Successful queue result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` - [readonly] `queue`: `string` - [readonly] `messageCount`: `number` - [readonly] `consumerCount`: `number` --- ### `RabbitMqQueueResultError` ```typescript interface RabbitMqQueueResultError extends RabbitMqQueueResultBase ``` Queue result with RabbitMQ error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqOperationError` - [readonly] `queue`: `null` - [readonly] `messageCount`: `null` - [readonly] `consumerCount`: `null` --- ### `RabbitMqQueueResultFailure` ```typescript interface RabbitMqQueueResultFailure extends RabbitMqQueueResultBase ``` Queue result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqFailureError` - [readonly] `queue`: `null` - [readonly] `messageCount`: `null` - [readonly] `consumerCount`: `null` --- ### `RabbitMqExchangeResultSuccess` ```typescript interface RabbitMqExchangeResultSuccess extends RabbitMqExchangeResultBase ``` Successful exchange result. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `true` - [readonly] `error`: `null` --- ### `RabbitMqExchangeResultError` ```typescript interface RabbitMqExchangeResultError extends RabbitMqExchangeResultBase ``` Exchange result with RabbitMQ error. **Properties:** - [readonly] `processed`: `true` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqOperationError` --- ### `RabbitMqExchangeResultFailure` ```typescript interface RabbitMqExchangeResultFailure extends RabbitMqExchangeResultBase ``` Exchange result with connection failure. **Properties:** - [readonly] `processed`: `false` - [readonly] `ok`: `false` - [readonly] `error`: `RabbitMqFailureError` --- ## Functions ### `createRabbitMqClient` ```typescript async function createRabbitMqClient( config: RabbitMqClientConfig, ): Promise ``` Create a new RabbitMQ client instance. The client provides queue and exchange management, message publishing and consumption, and acknowledgment handling via AMQP protocol. **Parameters:** - `config`: `RabbitMqClientConfig` — - RabbitMQ client configuration **Returns:** `Promise` A promise resolving to a new RabbitMQ client instance **Example:** Basic usage with string URL ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const rabbit = await createRabbitMqClient({ url: "amqp://guest:guest@localhost:5672", }); const channel = await rabbit.channel(); await channel.assertQueue("my-queue", { durable: true }); const content = new TextEncoder().encode(JSON.stringify({ type: "ORDER" })); await channel.sendToQueue("my-queue", content, { persistent: true }); await channel.close(); await rabbit.close(); ``` With connection config object ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const rabbit = await createRabbitMqClient({ url: { host: "localhost", port: 5672, username: "guest", password: "guest", vhost: "/", }, }); await rabbit.close(); ``` Exchange and binding ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const rabbit = await createRabbitMqClient({ url: "amqp://localhost:5672" }); const channel = await rabbit.channel(); // Create exchange and queue await channel.assertExchange("events", "topic", { durable: true }); await channel.assertQueue("user-events"); await channel.bindQueue("user-events", "events", "user.*"); // Publish to exchange const content = new TextEncoder().encode(JSON.stringify({ id: 1 })); await channel.publish("events", "user.created", content); await rabbit.close(); ``` Consuming messages ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const rabbit = await createRabbitMqClient({ url: "amqp://localhost:5672" }); const channel = await rabbit.channel(); await channel.assertQueue("my-queue"); for await (const message of channel.consume("my-queue")) { console.log("Received:", new TextDecoder().decode(message.content)); await channel.ack(message); break; } await rabbit.close(); ``` Get single message (polling) ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; const rabbit = await createRabbitMqClient({ url: "amqp://localhost:5672" }); const channel = await rabbit.channel(); await channel.assertQueue("my-queue"); const result = await channel.get("my-queue"); if (result.message) { await channel.ack(result.message); } await rabbit.close(); ``` Using `await using` for automatic cleanup ```ts import { createRabbitMqClient } from "@probitas/client-rabbitmq"; await using rabbit = await createRabbitMqClient({ url: "amqp://localhost:5672", }); const channel = await rabbit.channel(); await channel.assertQueue("test"); // Client automatically closed when scope exits ``` --- ## Types ### `RabbitMqExchangeType` ```typescript type RabbitMqExchangeType = "direct" | "topic" | "fanout" | "headers" ``` Exchange type. --- ### `RabbitMqOperationError` ```typescript type RabbitMqOperationError = RabbitMqChannelError | RabbitMqNotFoundError | RabbitMqPreconditionFailedError | RabbitMqError ``` Error types that indicate a RabbitMQ operation error. These are errors where the operation reached the server but failed. --- ### `RabbitMqFailureError` ```typescript type RabbitMqFailureError = RabbitMqConnectionError | AbortError | TimeoutError ``` Error types that indicate the operation was not processed. These are errors that occur before the operation reaches the RabbitMQ server. --- ### `RabbitMqPublishResult` ```typescript type RabbitMqPublishResult = RabbitMqPublishResultSuccess | RabbitMqPublishResultError | RabbitMqPublishResultFailure ``` Publish result. --- ### `RabbitMqConsumeResult` ```typescript type RabbitMqConsumeResult = RabbitMqConsumeResultSuccess | RabbitMqConsumeResultError | RabbitMqConsumeResultFailure ``` Consume result (single message retrieval). --- ### `RabbitMqAckResult` ```typescript type RabbitMqAckResult = RabbitMqAckResultSuccess | RabbitMqAckResultError | RabbitMqAckResultFailure ``` Ack/Nack result. --- ### `RabbitMqQueueResult` ```typescript type RabbitMqQueueResult = RabbitMqQueueResultSuccess | RabbitMqQueueResultError | RabbitMqQueueResultFailure ``` Queue declaration result. --- ### `RabbitMqExchangeResult` ```typescript type RabbitMqExchangeResult = RabbitMqExchangeResultSuccess | RabbitMqExchangeResultError | RabbitMqExchangeResultFailure ``` Exchange declaration result. --- ### `RabbitMqResult` ```typescript type RabbitMqResult = RabbitMqPublishResult | RabbitMqConsumeResult | RabbitMqAckResult | RabbitMqQueueResult | RabbitMqExchangeResult ``` Union of all RabbitMQ result types. --- ## Related Links ### This Package - [`RabbitMqAckResult`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqAckResult) - [`RabbitMqAckResultError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqAckResultError) - [`RabbitMqAckResultFailure`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqAckResultFailure) - [`RabbitMqAckResultSuccess`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqAckResultSuccess) - [`RabbitMqChannel`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqChannel) - [`RabbitMqChannelError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqChannelError) - [`RabbitMqChannelErrorOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqChannelErrorOptions) - [`RabbitMqClient`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqClient) - [`RabbitMqClientConfig`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqClientConfig) - [`RabbitMqConnectionConfig`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConnectionConfig) - [`RabbitMqConnectionError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConnectionError) - [`RabbitMqConsumeOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConsumeOptions) - [`RabbitMqConsumeResult`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConsumeResult) - [`RabbitMqConsumeResultError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConsumeResultError) - [`RabbitMqConsumeResultFailure`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConsumeResultFailure) - [`RabbitMqConsumeResultSuccess`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqConsumeResultSuccess) - [`RabbitMqError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqError) - [`RabbitMqErrorOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqErrorOptions) - [`RabbitMqExchangeOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeOptions) - [`RabbitMqExchangeResult`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeResult) - [`RabbitMqExchangeResultError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeResultError) - [`RabbitMqExchangeResultFailure`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeResultFailure) - [`RabbitMqExchangeResultSuccess`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeResultSuccess) - [`RabbitMqExchangeType`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqExchangeType) - [`RabbitMqFailureError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqFailureError) - [`RabbitMqMessage`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqMessage) - [`RabbitMqMessageFields`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqMessageFields) - [`RabbitMqMessageProperties`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqMessageProperties) - [`RabbitMqNackOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqNackOptions) - [`RabbitMqNotFoundError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqNotFoundError) - [`RabbitMqNotFoundErrorOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqNotFoundErrorOptions) - [`RabbitMqOperationError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqOperationError) - [`RabbitMqOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqOptions) - [`RabbitMqPreconditionFailedError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPreconditionFailedError) - [`RabbitMqPreconditionFailedErrorOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPreconditionFailedErrorOptions) - [`RabbitMqPublishOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPublishOptions) - [`RabbitMqPublishResult`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPublishResult) - [`RabbitMqPublishResultError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPublishResultError) - [`RabbitMqPublishResultFailure`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPublishResultFailure) - [`RabbitMqPublishResultSuccess`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqPublishResultSuccess) - [`RabbitMqQueueOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqQueueOptions) - [`RabbitMqQueueResult`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqQueueResult) - [`RabbitMqQueueResultError`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqQueueResultError) - [`RabbitMqQueueResultFailure`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqQueueResultFailure) - [`RabbitMqQueueResultSuccess`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqQueueResultSuccess) - [`RabbitMqRejectOptions`](https://probitas-test.github.io/documents/api/client-rabbitmq#RabbitMqRejectOptions) ### Other Packages - [`AbortError`](https://probitas-test.github.io/documents/api/client#AbortError) (@probitas/client) - [`CommonConnectionConfig`](https://probitas-test.github.io/documents/api/client#CommonConnectionConfig) (@probitas/client) - [`CommonOptions`](https://probitas-test.github.io/documents/api/client#CommonOptions) (@probitas/client) - [`TimeoutError`](https://probitas-test.github.io/documents/api/client#TimeoutError) (@probitas/client) ### Built-in Types - [`AsyncIterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_async_iterator_and_async_iterable_protocols) - [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) - [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type) - [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) --- *Last updated: 2026-01-12*