> ## 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: Program

> Reference for the Program interface in bijection/browser.

[browser](https://docs.bijection.com/api/modules/browser).Program

## Hierarchy

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

  ↳ **`Program`**

## 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

### inspect

▸ **inspect**(`options?`): `Promise`\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>

#### Parameters

| Name | Type |
| :- | :- |
| `options?` | [`ProgramReadOptions`](https://docs.bijection.com/api/modules/browser#programreadoptions) & \{ `signal?`: `AbortSignal`  } |

#### Returns

`Promise`\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>

***

### watch

▸ **watch**(`options?`): [`Watch`](https://docs.bijection.com/api/interfaces/browser.Watch)\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>

#### Parameters

| Name | Type |
| :- | :- |
| `options?` | [`ProgramReadOptions`](https://docs.bijection.com/api/modules/browser#programreadoptions) |

#### Returns

[`Watch`](https://docs.bijection.com/api/interfaces/browser.Watch)\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>

***

### wait

▸ **wait**(`options`): `Promise`\<[`WaitResult`](https://docs.bijection.com/api/modules/browser#waitresult)\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>>

#### Parameters

| Name | Type |
| :- | :- |
| `options` | [`WaitOptions`](https://docs.bijection.com/api/modules/browser#waitoptions)\<[`ProgramGoal`](https://docs.bijection.com/api/modules/programs#programgoal)> |

#### Returns

`Promise`\<[`WaitResult`](https://docs.bijection.com/api/modules/browser#waitresult)\<[`ProgramView`](https://docs.bijection.com/api/modules/programs#programview)>>

***

### retire

▸ **retire**(`options?`): `Promise`\<`void`>

Retire this capture and selections made with `with`.

#### Parameters

| Name | Type |
| :- | :- |
| `options?` | `Object` |
| `options.signal?` | `AbortSignal` |

#### Returns

`Promise`\<`void`>

***

### with

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

#### Parameters

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

#### Returns

[`Program`](https://docs.bijection.com/api/interfaces/browser.Program)

#### Inherited from

ProgramSelection.with

***

### withParameters

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

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

[`Program`](https://docs.bijection.com/api/interfaces/browser.Program)

#### Inherited from

ProgramSelection.withParameters


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