---
url: 'https://adk.nht.io/api/@nhtio/adk/batteries/interfaces/EncoderModule.md'
description: >-
  The slice of `@nhtio/encoder`'s API surface this codec uses. Deliberately
  non-generic (`unknown` in, `unknown` out) — this codec always encodes/decodes
  values whose shape it cannot statically know, so the real encoder's `<T
  extends Encodable>`-constrained signature is narrowed away via {@link
  defaultEncoderLoader}'s adapter rather than reflected here.
---

# Interface: EncoderModule

Defined in: [src/batteries/isolation/codec.ts:44](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L44)

The slice of `@nhtio/encoder`'s API surface this codec uses. Deliberately non-generic (`unknown` in,
`unknown` out) — this codec always encodes/decodes values whose shape it cannot statically know, so
the real encoder's `<T extends Encodable>`-constrained signature is narrowed away via
defaultEncoderLoader's adapter rather than reflected here.

## Properties

| Property                                                    | Type                                        | Description                                                                         | Defined in                                                                                                                      |
| ----------------------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|  `decode`                       | (`encoded`: `string`) => `unknown`          | Decode a `@nhtio/encoder` wire string back into the original value.                 | [src/batteries/isolation/codec.ts:48](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L48) |
|  `encode`                       | (`value`: `unknown`) => `string`            | Encode an arbitrary value to its `@nhtio/encoder` wire string.                      | [src/batteries/isolation/codec.ts:46](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L46) |
|  `isCustomEncodable` | (`value`: `unknown`) => `boolean`           | Whether `value` is an instance of a class previously passed to `registerClass`.     | [src/batteries/isolation/codec.ts:52](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L52) |
|  `isError`                     | (`value`: `unknown`) => `boolean`           | Whether `value` is an `Error` (or subclass), per the encoder's own classification.  | [src/batteries/isolation/codec.ts:54](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L54) |
|  `registerClass`         | (`ctor`: { `name`: `string`; }) => `void` | Register a class as custom-encodable so `encode`/`decode` round-trip its instances. | [src/batteries/isolation/codec.ts:50](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/isolation/codec.ts#L50) |
