# What changed in @smithy/types

> 18 changes in @smithy/types 4 from its official release notes, upgrade guides and advisories: 8 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@smithy/types/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @smithy/types 4

### New APIs and options

- Adds per-request MetricsRecorder support through client.send options. (4.19.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.19.0)
- Allows passing a custom fetch function to fetch-http-handler. (4.18.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.18.0)
- Adds the MetricsRecorder interface for SSDK metrics. (4.16.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.16.0)
- Adds the MetricsRecorderFactory interface for SSDK metrics. (4.16.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.16.0)
- Allows credentials to be snapshotted for event-stream signing. (4.14.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.14.1)
- New checksum algorithms can be added via extension. (4.13.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.13.0)
- Adds a static union schema as a new type. (4.11.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.11.0)
- Types used by the package are now exported for developers to use. (4.8.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.8.1)

### Behavior and default changes

- Downlevel types are now used with TypeScript versions earlier than 4.5, improving compatibility for those consumers. (4.16.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.16.1)
- The dist-cjs output now uses plain require/exports statements. (4.15.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.15.0)
- Default retries wait less between server errors and slightly longer between throttling errors, consume less retry capacity for throttling, and better parse retry-after headers. (4.14.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.14.0)
- Structure schemas now encode the required member count. (4.12.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.12.0)
- Protocol selection is easier for developers using the package. (4.10.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.10.0)

### Fixes and other changes

- Updates types for compatibility with isolatedModules=true. (4.16.0) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.16.0)
- Moved endpoint instructions types from core to types to fix the type of the instruction supplier static method of Command classes. (4.15.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.15.1)
- Excludes SharedArrayBuffer from the recursive type transform. (4.14.2) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.14.2)
- Adds an eventStream indicator signal so NodeHttp2ConnectionManager does not reuse connections for event streams. (4.14.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.14.1)
- Resolved endpoint headers are applied to the final request. (4.13.1) — [release notes](https://github.com/smithy-lang/smithy-typescript/releases/tag/%40smithy/types%404.13.1)
