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

# Interface: ProgramChoice

> Reference for the ProgramChoice interface in bijection/programs.

[programs](https://docs.bijection.com/api/modules/programs).ProgramChoice

## Hierarchy

* `ProgramSelection`\<[`ProgramChoice`](https://docs.bijection.com/api/interfaces/programs.ProgramChoice)>

  ↳ **`ProgramChoice`**

## Properties

### id

• `Readonly` **id**: `string`

#### Inherited from

ProgramSelection.id

***

### digest

• `Readonly` **digest**: `string`

#### Inherited from

ProgramSelection.digest

***

### ref

• `Readonly` **ref**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `format` | `string` |
| `program_id` | `string` |
| `program` | \{ readonly artifactId: string; readonly source: \{ readonly repositoryId: string; readonly commit: string; } \| null; } |
| `bindings` | readonly \{ readonly target: \{ readonly reference: string; readonly slots: readonly string\[]; }; readonly replacement: unknown; }\[] |
| `digest` | `string` |

#### Inherited from

ProgramSelection.ref

## Methods

### with

▸ **with**(`options`): [`ProgramChoice`](https://docs.bijection.com/api/interfaces/programs.ProgramChoice)

#### Parameters

| Name | Type |
| :- | :- |
| `options` | `Object` |
| `options.bindings` | [`ProgramBindings`](https://docs.bijection.com/api/modules/programs#programbindings) |

#### Returns

[`ProgramChoice`](https://docs.bijection.com/api/interfaces/programs.ProgramChoice)

#### Inherited from

ProgramSelection.with

***

### withParameters

▸ **withParameters**\<`C`, `Selected`>(`computation`, `parameters`): [`ProgramChoice`](https://docs.bijection.com/api/interfaces/programs.ProgramChoice)

Construct a candidate using only this computation's declared parameter keys.

#### Type parameters

| Name | Type |
| :- | :- |
| `C` | extends [`ParameterSource`](https://docs.bijection.com/api/modules/browser#parametersource) |
| `Selected` | extends `Record`\<`string`, [`Value`](https://docs.bijection.com/api/modules/values#value)> |

#### Parameters

| Name | Type |
| :- | :- |
| `computation` | `C` |
| `parameters` | `Selected` & `Partial`\<[`ParameterValues`](https://docs.bijection.com/api/modules/browser#parametervalues)\<`NoInfer<C>`>> & `Record`\<`Exclude`\<keyof `Selected`, keyof [`ParameterValues`](https://docs.bijection.com/api/modules/browser#parametervalues)\<`NoInfer<C>`>>, `never`> |

#### Returns

[`ProgramChoice`](https://docs.bijection.com/api/interfaces/programs.ProgramChoice)

#### Inherited from

ProgramSelection.withParameters


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.