Defined in: [src/decisions/decisions-api-decision-model.ts:38](https://github.com/strands-agents/harness-sdk/blob/main/strands-ts/src/decisions/decisions-api-decision-model.ts#L38)

Decision model backed by decisionapi.net.

## Example

```typescript
const decisions = new DecisionsAPIDecisionModel()
const result = await decisions.ask('A customer needs a refund today.', {
  department: { question: 'Which team should handle this?', choices: ['billing', 'support'] },
})
```

## Extends

-   [`DecisionModel`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md)

## Constructors

### Constructor

```ts
new DecisionsAPIDecisionModel(options?): DecisionsAPIDecisionModel;
```

Defined in: [src/decisions/decisions-api-decision-model.ts:45](https://github.com/strands-agents/harness-sdk/blob/main/strands-ts/src/decisions/decisions-api-decision-model.ts#L45)

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `options?` | [`DecisionsAPIDecisionModelOptions`](/pr-cms-5548/docs/api/typescript/DecisionsAPIDecisionModelOptions/index.md) | Provider, model, and confidence configuration. |

#### Returns

`DecisionsAPIDecisionModel`

#### Throws

Error if the API key, confidence threshold, or fetch implementation is invalid.

#### Overrides

[`DecisionModel`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md).[`constructor`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md#constructor)

## Methods

### ask()

```ts
ask<Q>(
   state,
   questions,
   options?
): Promise<DecisionResult<Q>>;
```

Defined in: [src/decisions/decision-model.ts:34](https://github.com/strands-agents/harness-sdk/blob/main/strands-ts/src/decisions/decision-model.ts#L34)

Ask one or more closed questions over the given state.

#### Type Parameters

| Type Parameter |
| --- |
| `Q` *extends* `Record`<`string`, [`Question`](/pr-cms-5548/docs/api/typescript/Question/index.md)<`"boolean"` | readonly `string`\[\]>> |

#### Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `state` | [`DecisionInput`](/pr-cms-5548/docs/api/typescript/DecisionInput/index.md) | A plain string, a one-shot content list, or a message history. |
| `questions` | `Q` | Map of identifier → question. The returned `answers` object is keyed off this same map and statically narrowed per question. |
| `options?` | [`AskOptions`](/pr-cms-5548/docs/api/typescript/AskOptions/index.md) | Per-call options, such as the request to add the decision’s usage to. |

#### Returns

`Promise`<[`DecisionResult`](/pr-cms-5548/docs/api/typescript/DecisionResult/index.md)<`Q`\>>

A [DecisionResult](/pr-cms-5548/docs/api/typescript/DecisionResult/index.md) whose answers are statically narrowed from each question’s `choices`.

#### Throws

Error if `questions` is empty or contains an invalid `question`, `choices`, or `uncertainty`.

#### Throws

TypeError if `options.invocationContext` was not created by the SDK.

#### Inherited from

[`DecisionModel`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md).[`ask`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md#ask)

---

### \_ask()

```ts
protected _ask<Q>(state, questions): Promise<DecisionResult<Q>>;
```

Defined in: [src/decisions/decisions-api-decision-model.ts:59](https://github.com/strands-agents/harness-sdk/blob/main/strands-ts/src/decisions/decisions-api-decision-model.ts#L59)

Implementation-specific decision logic. Must return a complete [DecisionResult](/pr-cms-5548/docs/api/typescript/DecisionResult/index.md), including `metadata.latencyMs` sourced from the underlying model provider.

#### Type Parameters

| Type Parameter |
| --- |
| `Q` *extends* `Record`<`string`, [`Question`](/pr-cms-5548/docs/api/typescript/Question/index.md)<`"boolean"` | readonly `string`\[\]>> |

#### Parameters

| Parameter | Type |
| --- | --- |
| `state` | [`DecisionInput`](/pr-cms-5548/docs/api/typescript/DecisionInput/index.md) |
| `questions` | `Q` |

#### Returns

`Promise`<[`DecisionResult`](/pr-cms-5548/docs/api/typescript/DecisionResult/index.md)<`Q`\>>

#### Overrides

[`DecisionModel`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md).[`_ask`](/pr-cms-5548/docs/api/typescript/DecisionModel/index.md#_ask)