---
url: 'https://adk.nht.io/api/@nhtio/adk/batteries/media/interfaces/EngineRegistry.md'
description: Ordered capability-filtered dispatch over the pipeline's engines.
---

# Interface: EngineRegistry

Defined in: [src/batteries/media/registry.ts:117](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L117)

Ordered capability-filtered dispatch over the pipeline's engines.

## Extends

* [`CapabilityProbe`](CapabilityProbe.md)

## Properties

| Property                                | Modifier   | Type                                                               | Description                                                   | Defined in                                                                                                                      |
| --------------------------------------- | ---------- | ------------------------------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|  `engines` | `readonly` | readonly [`MediaEngine`](../contracts/interfaces/MediaEngine.md)\[] | The resolved engines, in supply order (inspection/debugging). | [src/batteries/media/registry.ts:119](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L119) |

## Methods

### convert()

```ts
convert(request: ConvertRequest): Promise<ConvertResult>;
```

Defined in: [src/batteries/media/registry.ts:135](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L135)

Convert via the shortest capable path (direct edge = one hop). The selection rule picks
the engine for each executed hop; options are forwarded to every hop (engines ignore
keys they don't understand).

#### Parameters

| Parameter | Type                                                          | Description                                 |
| --------- | ------------------------------------------------------------- | ------------------------------------------- |
| `request` | [`ConvertRequest`](../contracts/interfaces/ConvertRequest.md) | The input bytes, target token, and options. |

#### Returns

`Promise`<[`ConvertResult`](../contracts/interfaces/ConvertResult.md)>

The final hop's outputs.

***

### convertTargets()

```ts
convertTargets(fromMime: string): readonly string[];
```

Defined in: [src/batteries/media/registry.ts:126](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L126)

Every format token reachable from `fromMime` — directly or through a computed path of up
to three hops. Drives "supported targets" error messages.

#### Parameters

| Parameter  | Type     | Description          |
| ---------- | -------- | -------------------- |
| `fromMime` | `string` | The input MIME type. |

#### Returns

readonly `string`\[]

***

### edit()

```ts
edit(request: EditRequest): Promise<EditResult>;
```

Defined in: [src/batteries/media/registry.ts:153](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L153)

Apply one structural document operation. Candidates are engines whose `over` matches the
input and whose `ops` include the requested op; the selection rule arbitrates between
engines of differing fidelity (supply order wins by default).

#### Parameters

| Parameter | Type                                                    | Description                            |
| --------- | ------------------------------------------------------- | -------------------------------------- |
| `request` | [`EditRequest`](../contracts/interfaces/EditRequest.md) | The op, its args, and the input bytes. |

#### Returns

`Promise`<[`EditResult`](../contracts/interfaces/EditResult.md)>

The restructured bytes plus optional change counts.

***

### hasConvert()

```ts
hasConvert(from?: string, to?: string): boolean;
```

Defined in: [src/batteries/media/validate.ts:34](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/validate.ts#L34)

`true` when some engine declares a matching convert edge (omit either side for "any").

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `from?`   | `string` |
| `to?`     | `string` |

#### Returns

`boolean`

#### Inherited from

[`CapabilityProbe`](CapabilityProbe.md).[`hasConvert`](CapabilityProbe.md#hasconvert)

***

### hasEdit()?

```ts
optional hasEdit(mime?: string, op?: string): boolean;
```

Defined in: [src/batteries/media/validate.ts:41](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/validate.ts#L41)

`true` when some engine declares a matching edit capability (omit both for "any").
Optional so existing probe stubs stay valid; absent means "no edit engines".

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `mime?`   | `string` |
| `op?`     | `string` |

#### Returns

`boolean`

#### Inherited from

[`CapabilityProbe`](CapabilityProbe.md).[`hasEdit`](CapabilityProbe.md#hasedit)

***

### hasMutate()

```ts
hasMutate(): boolean;
```

Defined in: [src/batteries/media/validate.ts:36](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/validate.ts#L36)

`true` when some engine declares a mutate capability.

#### Returns

`boolean`

#### Inherited from

[`CapabilityProbe`](CapabilityProbe.md).[`hasMutate`](CapabilityProbe.md#hasmutate)

***

### mutate()

```ts
mutate(request: MutateRequest): Promise<EngineBytesResult>;
```

Defined in: [src/batteries/media/registry.ts:144](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/media/registry.ts#L144)

Apply a fused same-format transform. Candidates are engines whose `over` matches the
input, whose `ops` cover the requested operations, and — when a re-encode is requested —
whose `encodes` include the target.

#### Parameters

| Parameter | Type                                                        | Description                           |
| --------- | ----------------------------------------------------------- | ------------------------------------- |
| `request` | [`MutateRequest`](../contracts/interfaces/MutateRequest.md) | The fused operations and input bytes. |

#### Returns

`Promise`<[`EngineBytesResult`](../contracts/interfaces/EngineBytesResult.md)>

The transformed bytes.
