> ## Documentation Index
> Fetch the complete documentation index at: https://narev.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# XaiV3MiddlewareOptions

[**@ai-billing/xai**](../index)

***

[@ai-billing/xai](/docs/sdk/ai-billing/reference/xai/typedoc/index) / XaiV3MiddlewareOptions

# Interface: XaiV3MiddlewareOptions\<TTags>

Defined in: [xai/src/ai-sdk/language-model-middleware/v3/language-model-v3-xai-billing-middleware.ts:43](https://github.com/narevai/ai-billing/blob/main/packages/xai/src/ai-sdk/language-model-middleware/v3/language-model-v3-xai-billing-middleware.ts#L43)

Configuration for [createXaiV3Middleware](/docs/sdk/ai-billing/reference/xai/typedoc/functions/createXaiV3Middleware).

Extends BaseBillingMiddlewareOptions (`destinations`, `defaultTags`, `waitUntil`, `onError`) and
requires a PriceResolver. Usage is taken from the AI SDK's normalized usage fields; cost is
computed from that usage and the resolved ModelPricing using the same rules as the package's cost
helper.

## Extends

* `BaseBillingMiddlewareOptions`\<`TTags`>

## Type Parameters

### TTags

`TTags` *extends* `DefaultTags`

The shape of the tags object, extending DefaultTags.

## Properties

### destinations?

> `optional` **destinations?**: `Destination`\<`TTags`>\[]

Defined in: types/dist/index.d.ts:71

One or more billing destinations that receive each emitted BillingEvent.

#### Inherited from

`BaseBillingMiddlewareOptions.destinations`

***

### defaultTags?

> `optional` **defaultTags?**: `TTags`

Defined in: types/dist/index.d.ts:73

Tags merged into every emitted event.

#### Inherited from

`BaseBillingMiddlewareOptions.defaultTags`

***

### waitUntil?

> `optional` **waitUntil?**: (`promise`) => `void`

Defined in: types/dist/index.d.ts:78

Edge-runtime hook (e.g. `ctx.waitUntil`) used to keep the process alive
while billing events are flushed asynchronously.

#### Parameters

##### promise

`Promise`\<`unknown`>

#### Returns

`void`

#### Inherited from

`BaseBillingMiddlewareOptions.waitUntil`

***

### onError?

> `optional` **onError?**: (`error`) => `void`

Defined in: types/dist/index.d.ts:80

Called when an error occurs during event extraction or dispatch. Defaults to a silent no-op.

#### Parameters

##### error

`unknown`

#### Returns

`void`

#### Inherited from

`BaseBillingMiddlewareOptions.onError`

***

### priceResolver

> **priceResolver**: `PriceResolver`

Defined in: [xai/src/ai-sdk/language-model-middleware/v3/language-model-v3-xai-billing-middleware.ts:46](https://github.com/narevai/ai-billing/blob/main/packages/xai/src/ai-sdk/language-model-middleware/v3/language-model-v3-xai-billing-middleware.ts#L46)
