# ProviderSelectionOptions

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:62](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L62)

Options for selectProviders(). Combines pre-fetched chain data
with selection parameters in a single argument.

## Extends

- [`ProviderSelectionInput`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/)

## Properties

### clientDataSets

> **clientDataSets**: [`SelectionDataSet`](/reference/filoz/synapse-core/warm-storage/interfaces/selectiondataset/)[]

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:48](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L48)

Client's existing datasets with metadata and piece-presence information

#### Inherited from

[`ProviderSelectionInput`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/).[`clientDataSets`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/#clientdatasets)

***

### count?

> `optional` **count?**: `number`

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:64](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L64)

Number of providers to select (default: 1)

***

### endorsedIds

> **endorsedIds**: `bigint`[]

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:46](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L46)

Array of endorsed provider IDs (from endorsements.getProviderIds).
 Non-empty = restrict to endorsed only. Empty = use all providers.

#### Inherited from

[`ProviderSelectionInput`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/).[`endorsedIds`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/#endorsedids)

***

### excludeProviderIds?

> `optional` **excludeProviderIds?**: `bigint`[]

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:66](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L66)

Provider IDs to exclude (for retry after ping failure or multi-copy exclusion)

***

### legacyPieceStorageIdLimit?

> `optional` **legacyPieceStorageIdLimit?**: `bigint`

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:55](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L55)

Data set ID boundary between legacy and compact piece storage (see
`FilecoinChain.legacyPieceStorageIdLimit`). Data sets at or above this ID
are compact and are preferred over legacy ones. Defaults to 0n (every
data set treated as compact) when omitted.

#### Inherited from

[`ProviderSelectionInput`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/).[`legacyPieceStorageIdLimit`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/#legacypiecestorageidlimit)

***

### metadata?

> `optional` **metadata?**: [`MetadataObject`](/reference/filoz/synapse-core/utils/type-aliases/metadataobject/)

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:68](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L68)

Desired metadata for dataset matching (empty object matches only empty-metadata datasets)

***

### providers

> **providers**: [`PDPProvider`](/reference/filoz/synapse-core/sp-registry/interfaces/pdpprovider/)[]

Defined in: [packages/synapse-core/src/warm-storage/location-types.ts:43](https://github.com/FilOzone/synapse-sdk/blob/234c88138c538ba9541243bf741aec6a41d402f0/packages/synapse-core/src/warm-storage/location-types.ts#L43)

Available PDP providers (typically from getApprovedPDPProviders)

#### Inherited from

[`ProviderSelectionInput`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/).[`providers`](/reference/filoz/synapse-core/warm-storage/interfaces/providerselectioninput/#providers)