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

# Pricing Types

> Protocol-agnostic pricing and handler capability types

# pricing

## Type Aliases

### HandlerCapabilities

> **HandlerCapabilities** = `object`

Defined in: [packages/types/src/pricing.ts:24](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L24)

Declares what a handler can settle so the middleware can route
[ResourcePricing](#resourcepricing) entries without calling the handler.

Used by both x402 `FacilitatorHandler` (optional) and MPP
`MPPMethodHandler` (required).

#### Properties

##### assets

> **assets**: `string`\[]

Defined in: [packages/types/src/pricing.ts:26](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L26)

##### networks

> **networks**: `string`\[]

Defined in: [packages/types/src/pricing.ts:25](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L25)

***

### ResourcePricing

> **ResourcePricing** = `object`

Defined in: [packages/types/src/pricing.ts:9](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L9)

Protocol-agnostic pricing configuration for a protected resource.

This is the resource server's statement of "I want X amount of Y asset
paid to Z recipient on W network." It says nothing about x402 schemes,
MPP methods, or protocol extras -- those are handler output, not
middleware input.

#### Properties

##### amount

> **amount**: `string`

Defined in: [packages/types/src/pricing.ts:10](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L10)

##### asset

> **asset**: `string`

Defined in: [packages/types/src/pricing.ts:11](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L11)

##### description?

> `optional` **description**: `string`

Defined in: [packages/types/src/pricing.ts:14](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L14)

##### network

> **network**: `string`

Defined in: [packages/types/src/pricing.ts:13](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L13)

##### recipient

> **recipient**: `string`

Defined in: [packages/types/src/pricing.ts:12](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L12)

## Functions

### capabilitiesMatch()

> **capabilitiesMatch**(`capabilities`, `criteria`): `boolean`

Defined in: [packages/types/src/pricing.ts:49](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L49)

Returns true when the given network and asset match the capabilities.
Empty `networks` or `assets` arrays act as wildcards.

#### Parameters

##### capabilities

[`HandlerCapabilities`](#handlercapabilities)

##### criteria

###### asset

`string`

###### network

`string`

#### Returns

`boolean`

***

### matchPricingToCapabilities()

> **matchPricingToCapabilities**(`capabilities`, `pricing`): [`ResourcePricing`](#resourcepricing)\[]

Defined in: [packages/types/src/pricing.ts:38](https://github.com/faremeter/faremeter/blob/main/packages/types/src/pricing.ts#L38)

Returns pricing entries whose network and asset match the given
capabilities. Empty `networks` or `assets` arrays act as wildcards.

#### Parameters

##### capabilities

[`HandlerCapabilities`](#handlercapabilities)

##### pricing

[`ResourcePricing`](#resourcepricing)\[]

#### Returns

[`ResourcePricing`](#resourcepricing)\[]
