> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-rn-guide-message-privately.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Auxiliary

> Class reference for CometChat SDK auxiliary objects, including receipts, reactions, typing indicators, transient messages, attachments, and exceptions.

This page documents the auxiliary classes used across all CometChat SDKs. These objects are returned by listener callbacks and specific SDK methods.

All properties are accessed via getter methods.

***

## MessageReceipt

`MessageReceipt` represents a delivery or read receipt for a message. It is received via the `onMessagesDelivered` and `onMessagesRead` listener callbacks.

### Properties

| Property     | Getter              | Return Type | Description                                                                    |
| ------------ | ------------------- | ----------- | ------------------------------------------------------------------------------ |
| messageId    | `getMessageId()`    | `string`    | ID of the message this receipt is for                                          |
| sender       | `getSender()`       | `User`      | The user who triggered the receipt                                             |
| receiver     | `getReceiver()`     | `string`    | UID or GUID of the receiver                                                    |
| receiverType | `getReceiverType()` | `string`    | Receiver type (`"user"` or `"group"`)                                          |
| receiptType  | `getReceiptType()`  | `string`    | Type of receipt (`"read"`, `"delivery"`, `"readByAll"`, or `"deliveredToAll"`) |
| timestamp    | `getTimestamp()`    | `string`    | Timestamp of the receipt                                                       |
| readAt       | `getReadAt()`       | `number`    | Timestamp when the message was read (epoch seconds)                            |
| deliveredAt  | `getDeliveredAt()`  | `number`    | Timestamp when the message was delivered (epoch seconds)                       |

***

## Reaction

`Reaction` represents an individual user's reaction on a message. It is returned by `fetchNext()` and `fetchPrevious()` on a `ReactionsRequest` object, and is also available within a `ReactionEvent`.

### Properties

| Property  | Getter            | Return Type | Description                                           |
| --------- | ----------------- | ----------- | ----------------------------------------------------- |
| id        | `getReactionId()` | `string`    | Unique identifier for this reaction                   |
| messageId | `getMessageId()`  | `string`    | ID of the message this reaction belongs to            |
| reaction  | `getReaction()`   | `string`    | The reaction emoji (e.g., `"😀"`, `"👍"`)             |
| uid       | `getUid()`        | `string`    | UID of the user who reacted                           |
| reactedAt | `getReactedAt()`  | `number`    | Timestamp when the reaction was added (epoch seconds) |
| reactedBy | `getReactedBy()`  | `User`      | The user who added this reaction                      |

***

## ReactionCount

`ReactionCount` represents the count of a specific reaction on a message. It is available via `getReactions()` on a `BaseMessage` object.

### Properties

| Property    | Getter             | Return Type | Description                                           |
| ----------- | ------------------ | ----------- | ----------------------------------------------------- |
| reaction    | `getReaction()`    | `string`    | The reaction emoji (e.g., `"😀"`, `"👍"`)             |
| count       | `getCount()`       | `number`    | Number of users who reacted with this reaction        |
| reactedByMe | `getReactedByMe()` | `boolean`   | Whether the logged-in user reacted with this reaction |

***

## ReactionEvent

`ReactionEvent` represents a real-time reaction event. It is received via the `onMessageReactionAdded` and `onMessageReactionRemoved` listener callbacks.

### Properties

| Property        | Getter                 | Return Type | Description                                                      |
| --------------- | ---------------------- | ----------- | ---------------------------------------------------------------- |
| reaction        | `getReaction()`        | `Reaction`  | The reaction details object                                      |
| receiverId      | `getReceiverId()`      | `string`    | UID or GUID of the receiver                                      |
| receiverType    | `getReceiverType()`    | `string`    | Receiver type (`"user"` or `"group"`)                            |
| conversationId  | `getConversationId()`  | `string`    | ID of the conversation                                           |
| parentMessageId | `getParentMessageId()` | `string`    | ID of the parent message (if the reacted message is in a thread) |

***

## TypingIndicator

`TypingIndicator` represents a typing event. It is received via the `onTypingStarted` and `onTypingEnded` listener callbacks.

### Properties

| Property     | Getter              | Return Type | Description                                      |
| ------------ | ------------------- | ----------- | ------------------------------------------------ |
| receiverId   | `getReceiverId()`   | `string`    | UID or GUID of the receiver                      |
| receiverType | `getReceiverType()` | `string`    | Receiver type (`"user"` or `"group"`)            |
| sender       | `getSender()`       | `User`      | The user who is typing                           |
| metadata     | `getMetadata()`     | `Object`    | Custom metadata attached to the typing indicator |

***

## TransientMessage

`TransientMessage` represents a transient (non-persistent) message. It is received via the `onTransientMessageReceived` listener callback. Transient messages are not stored on the server.

### Properties

| Property     | Getter              | Return Type | Description                                  |
| ------------ | ------------------- | ----------- | -------------------------------------------- |
| receiverId   | `getReceiverId()`   | `string`    | UID or GUID of the receiver                  |
| receiverType | `getReceiverType()` | `string`    | Receiver type (`"user"` or `"group"`)        |
| sender       | `getSender()`       | `User`      | The user who sent the transient message      |
| data         | `getData()`         | `any`       | Custom data payload of the transient message |

***

## Attachment

`Attachment` represents a file attachment on a `MediaMessage`. It is available via `getAttachment()` or `getAttachments()` on a `MediaMessage` object.

### Properties

| Property  | Getter           | Return Type | Description                                 |
| --------- | ---------------- | ----------- | ------------------------------------------- |
| name      | `getName()`      | `string`    | Name of the file                            |
| extension | `getExtension()` | `string`    | File extension (e.g., `"png"`, `"pdf"`)     |
| mimeType  | `getMimeType()`  | `string`    | MIME type of the file (e.g., `"image/png"`) |
| size      | `getSize()`      | `number`    | Size of the file in bytes                   |
| url       | `getUrl()`       | `string`    | URL to download the file                    |

***

## CometChatException

`CometChatException` represents an error from the Chat SDK. It is received in rejection callbacks of promise-based SDK methods (e.g., `sendMessage`, `login`, `getGroup`).

### Properties

| Property  | Type                 | Description                              |
| --------- | -------------------- | ---------------------------------------- |
| `code`    | `string` \| `number` | Error code identifying the type of error |
| `name`    | `string`             | Name/category of the error               |
| `message` | `string`             | Human-readable error description         |
| `details` | `string`             | Additional error details                 |
