diff --git a/.eslintrc.js b/.eslintrc.js
index 91d9874cf3e9..fad6de14d93a 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -28,5 +28,11 @@ module.exports = {
     /** Errors */
     "simple-import-sort/imports": "error",
     "sort-export-all/sort-export-all": "error",
+    "@typescript-eslint/consistent-type-imports": [
+      "error",
+      {
+        prefer: "type-imports",
+      },
+    ],
   },
 };
diff --git a/lib/lib-dynamodb/src/DynamoDBDocument.ts b/lib/lib-dynamodb/src/DynamoDBDocument.ts
index 7e3143875fbb..5f89288dfdc2 100644
--- a/lib/lib-dynamodb/src/DynamoDBDocument.ts
+++ b/lib/lib-dynamodb/src/DynamoDBDocument.ts
@@ -1,37 +1,41 @@
 // smithy-typescript generated code
-import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
-import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";
+import type { DynamoDBClient } from "@aws-sdk/client-dynamodb";
+import type { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";
 
-import {
-  BatchExecuteStatementCommand,
+import type {
   BatchExecuteStatementCommandInput,
   BatchExecuteStatementCommandOutput,
 } from "./commands/BatchExecuteStatementCommand";
-import { BatchGetCommand, BatchGetCommandInput, BatchGetCommandOutput } from "./commands/BatchGetCommand";
-import { BatchWriteCommand, BatchWriteCommandInput, BatchWriteCommandOutput } from "./commands/BatchWriteCommand";
-import { DeleteCommand, DeleteCommandInput, DeleteCommandOutput } from "./commands/DeleteCommand";
-import {
-  ExecuteStatementCommand,
-  ExecuteStatementCommandInput,
-  ExecuteStatementCommandOutput,
-} from "./commands/ExecuteStatementCommand";
-import {
-  ExecuteTransactionCommand,
+import { BatchExecuteStatementCommand } from "./commands/BatchExecuteStatementCommand";
+import type { BatchGetCommandInput, BatchGetCommandOutput } from "./commands/BatchGetCommand";
+import { BatchGetCommand } from "./commands/BatchGetCommand";
+import type { BatchWriteCommandInput, BatchWriteCommandOutput } from "./commands/BatchWriteCommand";
+import { BatchWriteCommand } from "./commands/BatchWriteCommand";
+import type { DeleteCommandInput, DeleteCommandOutput } from "./commands/DeleteCommand";
+import { DeleteCommand } from "./commands/DeleteCommand";
+import type { ExecuteStatementCommandInput, ExecuteStatementCommandOutput } from "./commands/ExecuteStatementCommand";
+import { ExecuteStatementCommand } from "./commands/ExecuteStatementCommand";
+import type {
   ExecuteTransactionCommandInput,
   ExecuteTransactionCommandOutput,
 } from "./commands/ExecuteTransactionCommand";
-import { GetCommand, GetCommandInput, GetCommandOutput } from "./commands/GetCommand";
-import { PutCommand, PutCommandInput, PutCommandOutput } from "./commands/PutCommand";
-import { QueryCommand, QueryCommandInput, QueryCommandOutput } from "./commands/QueryCommand";
-import { ScanCommand, ScanCommandInput, ScanCommandOutput } from "./commands/ScanCommand";
-import { TransactGetCommand, TransactGetCommandInput, TransactGetCommandOutput } from "./commands/TransactGetCommand";
-import {
-  TransactWriteCommand,
-  TransactWriteCommandInput,
-  TransactWriteCommandOutput,
-} from "./commands/TransactWriteCommand";
-import { UpdateCommand, UpdateCommandInput, UpdateCommandOutput } from "./commands/UpdateCommand";
-import { DynamoDBDocumentClient, TranslateConfig } from "./DynamoDBDocumentClient";
+import { ExecuteTransactionCommand } from "./commands/ExecuteTransactionCommand";
+import type { GetCommandInput, GetCommandOutput } from "./commands/GetCommand";
+import { GetCommand } from "./commands/GetCommand";
+import type { PutCommandInput, PutCommandOutput } from "./commands/PutCommand";
+import { PutCommand } from "./commands/PutCommand";
+import type { QueryCommandInput, QueryCommandOutput } from "./commands/QueryCommand";
+import { QueryCommand } from "./commands/QueryCommand";
+import type { ScanCommandInput, ScanCommandOutput } from "./commands/ScanCommand";
+import { ScanCommand } from "./commands/ScanCommand";
+import type { TransactGetCommandInput, TransactGetCommandOutput } from "./commands/TransactGetCommand";
+import { TransactGetCommand } from "./commands/TransactGetCommand";
+import type { TransactWriteCommandInput, TransactWriteCommandOutput } from "./commands/TransactWriteCommand";
+import { TransactWriteCommand } from "./commands/TransactWriteCommand";
+import type { UpdateCommandInput, UpdateCommandOutput } from "./commands/UpdateCommand";
+import { UpdateCommand } from "./commands/UpdateCommand";
+import type { TranslateConfig } from "./DynamoDBDocumentClient";
+import { DynamoDBDocumentClient } from "./DynamoDBDocumentClient";
 
 /**
  * The document client simplifies working with items in Amazon DynamoDB by
diff --git a/lib/lib-dynamodb/src/DynamoDBDocumentClient.ts b/lib/lib-dynamodb/src/DynamoDBDocumentClient.ts
index c48f217f122d..15dd8f19e0a9 100644
--- a/lib/lib-dynamodb/src/DynamoDBDocumentClient.ts
+++ b/lib/lib-dynamodb/src/DynamoDBDocumentClient.ts
@@ -1,30 +1,33 @@
 // smithy-typescript generated code
-import {
+import type {
   DynamoDBClient,
   DynamoDBClientResolvedConfig,
   ServiceInputTypes as __ServiceInputTypes,
   ServiceOutputTypes as __ServiceOutputTypes,
 } from "@aws-sdk/client-dynamodb";
-import { marshallOptions, unmarshallOptions } from "@aws-sdk/util-dynamodb";
+import type { marshallOptions, unmarshallOptions } from "@aws-sdk/util-dynamodb";
 import { Client as __Client } from "@smithy/smithy-client";
-import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";
+import type { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";
 
-import {
+import type {
   BatchExecuteStatementCommandInput,
   BatchExecuteStatementCommandOutput,
 } from "./commands/BatchExecuteStatementCommand";
-import { BatchGetCommandInput, BatchGetCommandOutput } from "./commands/BatchGetCommand";
-import { BatchWriteCommandInput, BatchWriteCommandOutput } from "./commands/BatchWriteCommand";
-import { DeleteCommandInput, DeleteCommandOutput } from "./commands/DeleteCommand";
-import { ExecuteStatementCommandInput, ExecuteStatementCommandOutput } from "./commands/ExecuteStatementCommand";
-import { ExecuteTransactionCommandInput, ExecuteTransactionCommandOutput } from "./commands/ExecuteTransactionCommand";
-import { GetCommandInput, GetCommandOutput } from "./commands/GetCommand";
-import { PutCommandInput, PutCommandOutput } from "./commands/PutCommand";
-import { QueryCommandInput, QueryCommandOutput } from "./commands/QueryCommand";
-import { ScanCommandInput, ScanCommandOutput } from "./commands/ScanCommand";
-import { TransactGetCommandInput, TransactGetCommandOutput } from "./commands/TransactGetCommand";
-import { TransactWriteCommandInput, TransactWriteCommandOutput } from "./commands/TransactWriteCommand";
-import { UpdateCommandInput, UpdateCommandOutput } from "./commands/UpdateCommand";
+import type { BatchGetCommandInput, BatchGetCommandOutput } from "./commands/BatchGetCommand";
+import type { BatchWriteCommandInput, BatchWriteCommandOutput } from "./commands/BatchWriteCommand";
+import type { DeleteCommandInput, DeleteCommandOutput } from "./commands/DeleteCommand";
+import type { ExecuteStatementCommandInput, ExecuteStatementCommandOutput } from "./commands/ExecuteStatementCommand";
+import type {
+  ExecuteTransactionCommandInput,
+  ExecuteTransactionCommandOutput,
+} from "./commands/ExecuteTransactionCommand";
+import type { GetCommandInput, GetCommandOutput } from "./commands/GetCommand";
+import type { PutCommandInput, PutCommandOutput } from "./commands/PutCommand";
+import type { QueryCommandInput, QueryCommandOutput } from "./commands/QueryCommand";
+import type { ScanCommandInput, ScanCommandOutput } from "./commands/ScanCommand";
+import type { TransactGetCommandInput, TransactGetCommandOutput } from "./commands/TransactGetCommand";
+import type { TransactWriteCommandInput, TransactWriteCommandOutput } from "./commands/TransactWriteCommand";
+import type { UpdateCommandInput, UpdateCommandOutput } from "./commands/UpdateCommand";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.spec.ts b/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.spec.ts
index d3f8b530d3cc..08bd9d17a281 100644
--- a/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.spec.ts
+++ b/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.spec.ts
@@ -1,6 +1,6 @@
-import { Handler, MiddlewareStack } from "@smithy/types";
+import type { Handler, MiddlewareStack } from "@smithy/types";
 
-import { KeyNodeChildren } from "../commands/utils";
+import type { KeyNodeChildren } from "../commands/utils";
 import { DynamoDBDocumentClientCommand } from "./DynamoDBDocumentClientCommand";
 
 class AnyCommand extends DynamoDBDocumentClientCommand<{}, {}, {}, {}, {}> {
diff --git a/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.ts b/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.ts
index 94cf791d1488..1a395f1d502e 100644
--- a/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.ts
+++ b/lib/lib-dynamodb/src/baseCommand/DynamoDBDocumentClientCommand.ts
@@ -1,5 +1,5 @@
 import { Command as $Command } from "@smithy/smithy-client";
-import {
+import type {
   DeserializeHandler,
   DeserializeHandlerArguments,
   DeserializeHandlerOutput,
@@ -10,8 +10,9 @@ import {
   MiddlewareStack,
 } from "@smithy/types";
 
-import { KeyNodeChildren, marshallInput, unmarshallOutput } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig } from "../DynamoDBDocumentClient";
+import type { KeyNodeChildren } from "../commands/utils";
+import { marshallInput, unmarshallOutput } from "../commands/utils";
+import type { DynamoDBDocumentClientResolvedConfig } from "../DynamoDBDocumentClient";
 
 // /** @public */
 // export { $Command, DynamoDBDocumentClientResolvedConfig };
diff --git a/lib/lib-dynamodb/src/commands/BatchExecuteStatementCommand.ts b/lib/lib-dynamodb/src/commands/BatchExecuteStatementCommand.ts
index 2d9e8fecb4a0..7a5279d20696 100644
--- a/lib/lib-dynamodb/src/commands/BatchExecuteStatementCommand.ts
+++ b/lib/lib-dynamodb/src/commands/BatchExecuteStatementCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { BatchExecuteStatementCommand as __BatchExecuteStatementCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/BatchGetCommand.ts b/lib/lib-dynamodb/src/commands/BatchGetCommand.ts
index def798d0a011..c5af7ac2d7da 100644
--- a/lib/lib-dynamodb/src/commands/BatchGetCommand.ts
+++ b/lib/lib-dynamodb/src/commands/BatchGetCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { BatchGetItemCommand as __BatchGetItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/BatchWriteCommand.ts b/lib/lib-dynamodb/src/commands/BatchWriteCommand.ts
index 9de56da1658b..d81a5ea7fc91 100644
--- a/lib/lib-dynamodb/src/commands/BatchWriteCommand.ts
+++ b/lib/lib-dynamodb/src/commands/BatchWriteCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { BatchWriteItemCommand as __BatchWriteItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/DeleteCommand.ts b/lib/lib-dynamodb/src/commands/DeleteCommand.ts
index f6d6e32a15bf..dfabe11d8f32 100644
--- a/lib/lib-dynamodb/src/commands/DeleteCommand.ts
+++ b/lib/lib-dynamodb/src/commands/DeleteCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { DeleteItemCommand as __DeleteItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES, SELF } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/ExecuteStatementCommand.ts b/lib/lib-dynamodb/src/commands/ExecuteStatementCommand.ts
index 81f0aae6227d..9a5aa7b885a9 100644
--- a/lib/lib-dynamodb/src/commands/ExecuteStatementCommand.ts
+++ b/lib/lib-dynamodb/src/commands/ExecuteStatementCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { ExecuteStatementCommand as __ExecuteStatementCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/ExecuteTransactionCommand.ts b/lib/lib-dynamodb/src/commands/ExecuteTransactionCommand.ts
index 6e7d40beefc9..dbaab3a6ad0f 100644
--- a/lib/lib-dynamodb/src/commands/ExecuteTransactionCommand.ts
+++ b/lib/lib-dynamodb/src/commands/ExecuteTransactionCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { ExecuteTransactionCommand as __ExecuteTransactionCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/GetCommand.ts b/lib/lib-dynamodb/src/commands/GetCommand.ts
index 8f46b914210b..ba98657d17e4 100644
--- a/lib/lib-dynamodb/src/commands/GetCommand.ts
+++ b/lib/lib-dynamodb/src/commands/GetCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { GetItemCommand as __GetItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/PutCommand.ts b/lib/lib-dynamodb/src/commands/PutCommand.ts
index 8e345adbb607..7796839d8123 100644
--- a/lib/lib-dynamodb/src/commands/PutCommand.ts
+++ b/lib/lib-dynamodb/src/commands/PutCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { PutItemCommand as __PutItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES, SELF } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/QueryCommand.ts b/lib/lib-dynamodb/src/commands/QueryCommand.ts
index 726d6a998b10..277e0b4572aa 100644
--- a/lib/lib-dynamodb/src/commands/QueryCommand.ts
+++ b/lib/lib-dynamodb/src/commands/QueryCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { QueryCommand as __QueryCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/ScanCommand.ts b/lib/lib-dynamodb/src/commands/ScanCommand.ts
index ffe1e23829d9..6a2297b5a739 100644
--- a/lib/lib-dynamodb/src/commands/ScanCommand.ts
+++ b/lib/lib-dynamodb/src/commands/ScanCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { ScanCommand as __ScanCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/TransactGetCommand.ts b/lib/lib-dynamodb/src/commands/TransactGetCommand.ts
index 389739d5626d..5521253702aa 100644
--- a/lib/lib-dynamodb/src/commands/TransactGetCommand.ts
+++ b/lib/lib-dynamodb/src/commands/TransactGetCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { TransactGetItemsCommand as __TransactGetItemsCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/TransactWriteCommand.ts b/lib/lib-dynamodb/src/commands/TransactWriteCommand.ts
index 79e3cc2af2f2..a520a8543f49 100644
--- a/lib/lib-dynamodb/src/commands/TransactWriteCommand.ts
+++ b/lib/lib-dynamodb/src/commands/TransactWriteCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { TransactWriteItemsCommand as __TransactWriteItemsCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_VALUES } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/UpdateCommand.ts b/lib/lib-dynamodb/src/commands/UpdateCommand.ts
index 11e3b65be7c4..be965113ffca 100644
--- a/lib/lib-dynamodb/src/commands/UpdateCommand.ts
+++ b/lib/lib-dynamodb/src/commands/UpdateCommand.ts
@@ -1,11 +1,15 @@
 // smithy-typescript generated code
 import { UpdateItemCommand as __UpdateItemCommand } from "@aws-sdk/client-dynamodb";
 import { Command as $Command } from "@smithy/smithy-client";
-import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
+import type { Handler, HttpHandlerOptions as __HttpHandlerOptions, MiddlewareStack } from "@smithy/types";
 
 import { DynamoDBDocumentClientCommand } from "../baseCommand/DynamoDBDocumentClientCommand";
 import { ALL_MEMBERS, ALL_VALUES, SELF } from "../commands/utils";
-import { DynamoDBDocumentClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DynamoDBDocumentClient";
+import type {
+  DynamoDBDocumentClientResolvedConfig,
+  ServiceInputTypes,
+  ServiceOutputTypes,
+} from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/commands/utils.ts b/lib/lib-dynamodb/src/commands/utils.ts
index 8f9982e32702..6249a9f603ef 100644
--- a/lib/lib-dynamodb/src/commands/utils.ts
+++ b/lib/lib-dynamodb/src/commands/utils.ts
@@ -1,4 +1,5 @@
-import { marshall, marshallOptions, unmarshall, unmarshallOptions } from "@aws-sdk/util-dynamodb";
+import type { marshallOptions, unmarshallOptions } from "@aws-sdk/util-dynamodb";
+import { marshall, unmarshall } from "@aws-sdk/util-dynamodb";
 
 /**
  * @internal
diff --git a/lib/lib-dynamodb/src/pagination/Interfaces.ts b/lib/lib-dynamodb/src/pagination/Interfaces.ts
index 54da188dd095..2dee694ef1f0 100644
--- a/lib/lib-dynamodb/src/pagination/Interfaces.ts
+++ b/lib/lib-dynamodb/src/pagination/Interfaces.ts
@@ -1,8 +1,8 @@
 // smithy-typescript generated code
 import { PaginationConfiguration } from "@smithy/types";
 
-import { DynamoDBDocument } from "../DynamoDBDocument";
-import { DynamoDBDocumentClient } from "../DynamoDBDocumentClient";
+import type { DynamoDBDocument } from "../DynamoDBDocument";
+import type { DynamoDBDocumentClient } from "../DynamoDBDocumentClient";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/pagination/QueryPaginator.ts b/lib/lib-dynamodb/src/pagination/QueryPaginator.ts
index 699a84949a0a..a3a56b1a0d94 100644
--- a/lib/lib-dynamodb/src/pagination/QueryPaginator.ts
+++ b/lib/lib-dynamodb/src/pagination/QueryPaginator.ts
@@ -1,9 +1,10 @@
 // smithy-typescript generated code
 import { Paginator } from "@smithy/types";
 
-import { QueryCommand, QueryCommandInput, QueryCommandOutput } from "../commands/QueryCommand";
+import type { QueryCommandInput, QueryCommandOutput } from "../commands/QueryCommand";
+import { QueryCommand } from "../commands/QueryCommand";
 import { DynamoDBDocumentClient } from "../DynamoDBDocumentClient";
-import { DynamoDBDocumentPaginationConfiguration } from "./Interfaces";
+import type { DynamoDBDocumentPaginationConfiguration } from "./Interfaces";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/pagination/ScanPaginator.ts b/lib/lib-dynamodb/src/pagination/ScanPaginator.ts
index fe67bc0f0cb5..98bda2e4c624 100644
--- a/lib/lib-dynamodb/src/pagination/ScanPaginator.ts
+++ b/lib/lib-dynamodb/src/pagination/ScanPaginator.ts
@@ -1,9 +1,10 @@
 // smithy-typescript generated code
 import { Paginator } from "@smithy/types";
 
-import { ScanCommand, ScanCommandInput, ScanCommandOutput } from "../commands/ScanCommand";
+import type { ScanCommandInput, ScanCommandOutput } from "../commands/ScanCommand";
+import { ScanCommand } from "../commands/ScanCommand";
 import { DynamoDBDocumentClient } from "../DynamoDBDocumentClient";
-import { DynamoDBDocumentPaginationConfiguration } from "./Interfaces";
+import type { DynamoDBDocumentPaginationConfiguration } from "./Interfaces";
 
 /**
  * @public
diff --git a/lib/lib-dynamodb/src/test/lib-dynamodb.e2e.spec.ts b/lib/lib-dynamodb/src/test/lib-dynamodb.e2e.spec.ts
index c37223ba0b5b..ddecb28d58f4 100644
--- a/lib/lib-dynamodb/src/test/lib-dynamodb.e2e.spec.ts
+++ b/lib/lib-dynamodb/src/test/lib-dynamodb.e2e.spec.ts
@@ -1,21 +1,17 @@
-import {
-  BillingMode,
+import type {
   CreateTableCommandOutput,
   DeleteItemCommandOutput,
   DescribeTableCommandOutput,
-  DynamoDB,
   GetItemCommandOutput,
-  waitUntilTableExists,
 } from "@aws-sdk/client-dynamodb";
-import {
+import { BillingMode, DynamoDB, waitUntilTableExists } from "@aws-sdk/client-dynamodb";
+import type {
   BatchExecuteStatementCommandOutput,
   BatchGetCommandOutput,
   BatchWriteCommandOutput,
-  DynamoDBDocument,
   ExecuteStatementCommandOutput,
   ExecuteTransactionCommandOutput,
   GetCommandOutput,
-  NumberValue,
   PutCommandOutput,
   QueryCommandOutput,
   ScanCommandOutput,
@@ -23,6 +19,7 @@ import {
   TransactWriteCommandOutput,
   UpdateCommandOutput,
 } from "@aws-sdk/lib-dynamodb";
+import { DynamoDBDocument, NumberValue } from "@aws-sdk/lib-dynamodb";
 
 // expected running time: table creation (~20s) + operations 10s
 jest.setTimeout(180000);
diff --git a/lib/lib-storage/example-code/file-upload.ts b/lib/lib-storage/example-code/file-upload.ts
index aaaf6a3b23a2..f635929641d6 100644
--- a/lib/lib-storage/example-code/file-upload.ts
+++ b/lib/lib-storage/example-code/file-upload.ts
@@ -1,6 +1,7 @@
-import * as fs from "fs";
-import { Upload } from "@aws-sdk/lib-storage";
 import { S3 } from "@aws-sdk/client-s3";
+import { Upload } from "@aws-sdk/lib-storage";
+import * as fs from "fs";
+
 import { configuration } from "./config";
 
 const fileStream = fs.createReadStream(__dirname + "/big.file");
diff --git a/lib/lib-storage/example-code/upload-abort.ts b/lib/lib-storage/example-code/upload-abort.ts
index 26956b055dc1..7c0b2b3c9852 100644
--- a/lib/lib-storage/example-code/upload-abort.ts
+++ b/lib/lib-storage/example-code/upload-abort.ts
@@ -1,8 +1,9 @@
 import { S3Client } from "@aws-sdk/client-s3";
 import { Upload } from "@aws-sdk/lib-storage";
-import { configuration } from "./config";
 import { Readable } from "stream";
 
+import { configuration } from "./config";
+
 const Bucket = configuration.Bucket;
 const region = "us-west-2";
 
@@ -23,7 +24,7 @@ const uploadIndeterminateLengthStreamNode = async () => {
   const streamOfUnknownlength = Readable.from(generateContents());
 
   const Key = configuration.Key;
-  let upload = new Upload({
+  const upload = new Upload({
     client: new S3Client({ region }),
     params: {
       Key,
@@ -38,7 +39,7 @@ const uploadIndeterminateLengthStreamNode = async () => {
 
   setTimeout(() => {
     console.log(" Aborting ....");
-    let res = upload.abort();
+    const res = upload.abort();
   }, 10 * 1000);
 
   const uploadResult = await upload.done();
diff --git a/lib/lib-storage/example-code/upload-string.ts b/lib/lib-storage/example-code/upload-string.ts
index 2165258b5af0..20389c6b466b 100644
--- a/lib/lib-storage/example-code/upload-string.ts
+++ b/lib/lib-storage/example-code/upload-string.ts
@@ -1,5 +1,6 @@
-import { Upload } from "@aws-sdk/lib-storage";
 import { S3 } from "@aws-sdk/client-s3";
+import { Upload } from "@aws-sdk/lib-storage";
+
 import { configuration } from "./config";
 
 const Bucket = configuration.Bucket;
diff --git a/lib/lib-storage/example-code/upload-unknown-length-browser.ts b/lib/lib-storage/example-code/upload-unknown-length-browser.ts
index 0d789f2a7253..b877085e5165 100644
--- a/lib/lib-storage/example-code/upload-unknown-length-browser.ts
+++ b/lib/lib-storage/example-code/upload-unknown-length-browser.ts
@@ -1,7 +1,6 @@
-import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
 import { CognitoIdentityClient } from "@aws-sdk/client-cognito-identity";
-
 import { S3Client } from "@aws-sdk/client-s3";
+import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
 import { Upload } from "@aws-sdk/lib-storage";
 
 import { configuration } from "./config";
@@ -37,7 +36,7 @@ const uploadIndeterminateLengthStreamBrowser = async () => {
 
   const Key = configuration.Key;
 
-  let upload = new Upload({
+  const upload = new Upload({
     client,
     params: {
       Key,
diff --git a/lib/lib-storage/example-code/upload-unknown-length.ts b/lib/lib-storage/example-code/upload-unknown-length.ts
index ac2b1dd096d7..b5281285e375 100644
--- a/lib/lib-storage/example-code/upload-unknown-length.ts
+++ b/lib/lib-storage/example-code/upload-unknown-length.ts
@@ -1,7 +1,7 @@
 import { S3Client } from "@aws-sdk/client-s3";
 import { Upload } from "@aws-sdk/lib-storage";
-
 import { Readable } from "stream";
+
 import { configuration } from "./config";
 
 const Bucket = configuration.Bucket;
@@ -23,7 +23,7 @@ const fakeStreamOfUnknownlength = Readable.from(generateContents());
 
 const uploadIndeterminateLengthStreamNode = async () => {
   const Key = configuration.Key;
-  let upload = new Upload({
+  const upload = new Upload({
     client: new S3Client({ region }),
     params: {
       Key,
diff --git a/lib/lib-storage/src/Upload.spec.ts b/lib/lib-storage/src/Upload.spec.ts
index 65a2e5c5f77e..75b55517dcbb 100644
--- a/lib/lib-storage/src/Upload.spec.ts
+++ b/lib/lib-storage/src/Upload.spec.ts
@@ -65,11 +65,13 @@ jest.mock("@aws-sdk/client-s3", () => ({
   PutObjectCommand: putObjectMock,
 }));
 
-import { CompleteMultipartUploadCommandOutput, S3, S3Client } from "@aws-sdk/client-s3";
+import type { CompleteMultipartUploadCommandOutput } from "@aws-sdk/client-s3";
+import { S3, S3Client } from "@aws-sdk/client-s3";
 import { AbortController } from "@smithy/abort-controller";
 import { createHash } from "crypto";
 
-import { Progress, Upload } from "./index";
+import type { Progress } from "./index";
+import { Upload } from "./index";
 
 const DEFAULT_PART_SIZE = 1024 * 1024 * 5;
 
diff --git a/lib/lib-storage/src/Upload.ts b/lib/lib-storage/src/Upload.ts
index 5105451e0a06..9befda521172 100644
--- a/lib/lib-storage/src/Upload.ts
+++ b/lib/lib-storage/src/Upload.ts
@@ -1,30 +1,29 @@
-import {
+import type {
   CompletedPart,
-  CompleteMultipartUploadCommand,
   CompleteMultipartUploadCommandOutput,
-  CreateMultipartUploadCommand,
   CreateMultipartUploadCommandOutput,
-  PutObjectCommand,
   PutObjectCommandInput,
-  PutObjectTaggingCommand,
   S3Client,
   Tag,
+} from "@aws-sdk/client-s3";
+import {
+  CompleteMultipartUploadCommand,
+  CreateMultipartUploadCommand,
+  PutObjectCommand,
+  PutObjectTaggingCommand,
   UploadPartCommand,
 } from "@aws-sdk/client-s3";
 import { AbortController } from "@smithy/abort-controller";
-import {
-  EndpointParameterInstructionsSupplier,
-  getEndpointFromInstructions,
-  toEndpointV1,
-} from "@smithy/middleware-endpoint";
-import { HttpRequest } from "@smithy/protocol-http";
+import type { EndpointParameterInstructionsSupplier } from "@smithy/middleware-endpoint";
+import { getEndpointFromInstructions, toEndpointV1 } from "@smithy/middleware-endpoint";
+import type { HttpRequest } from "@smithy/protocol-http";
 import { extendedEncodeURIComponent } from "@smithy/smithy-client";
 import type { AbortController as IAbortController, AbortSignal as IAbortSignal, Endpoint } from "@smithy/types";
 import { EventEmitter } from "events";
 
 import { byteLength } from "./bytelength";
 import { getChunk } from "./chunker";
-import { BodyDataTypes, Options, Progress } from "./types";
+import type { BodyDataTypes, Options, Progress } from "./types";
 
 export interface RawDataPart {
   partNumber: number;
diff --git a/lib/lib-storage/src/chunker.ts b/lib/lib-storage/src/chunker.ts
index fb9c205bfb7a..d5fb5b7c8403 100644
--- a/lib/lib-storage/src/chunker.ts
+++ b/lib/lib-storage/src/chunker.ts
@@ -5,7 +5,7 @@ import { getChunkStream } from "./chunks/getChunkStream";
 import { getChunkUint8Array } from "./chunks/getChunkUint8Array";
 import { getDataReadable } from "./chunks/getDataReadable";
 import { getDataReadableStream } from "./chunks/getDataReadableStream";
-import { BodyDataTypes } from "./types";
+import type { BodyDataTypes } from "./types";
 import type { RawDataPart } from "./Upload";
 
 export const getChunk = (data: BodyDataTypes, partSize: number): AsyncGenerator<RawDataPart, void, undefined> => {
diff --git a/lib/lib-storage/src/chunks/getChunkStream.ts b/lib/lib-storage/src/chunks/getChunkStream.ts
index 86e33d0b27a5..b10196ba415f 100644
--- a/lib/lib-storage/src/chunks/getChunkStream.ts
+++ b/lib/lib-storage/src/chunks/getChunkStream.ts
@@ -1,6 +1,6 @@
 import { Buffer } from "buffer"; // do not remove this import: Node.js buffer or buffer NPM module for browser.
 
-import { RawDataPart } from "../Upload";
+import type { RawDataPart } from "../Upload";
 
 interface Buffers {
   chunks: Uint8Array[];
diff --git a/lib/lib-storage/src/chunks/getChunkUint8Array.spec.ts b/lib/lib-storage/src/chunks/getChunkUint8Array.spec.ts
index eae36ca8c07c..fbca66e8e6bb 100644
--- a/lib/lib-storage/src/chunks/getChunkUint8Array.spec.ts
+++ b/lib/lib-storage/src/chunks/getChunkUint8Array.spec.ts
@@ -1,5 +1,5 @@
 import { byteLength } from "../bytelength";
-import { RawDataPart } from "../Upload";
+import type { RawDataPart } from "../Upload";
 import { getChunkUint8Array } from "./getChunkUint8Array";
 
 describe(getChunkUint8Array.name, () => {
diff --git a/lib/lib-storage/src/chunks/getChunkUint8Array.ts b/lib/lib-storage/src/chunks/getChunkUint8Array.ts
index 255d6789cbbc..cb357f412f84 100644
--- a/lib/lib-storage/src/chunks/getChunkUint8Array.ts
+++ b/lib/lib-storage/src/chunks/getChunkUint8Array.ts
@@ -1,4 +1,4 @@
-import { RawDataPart } from "../Upload";
+import type { RawDataPart } from "../Upload";
 
 export async function* getChunkUint8Array(
   data: Uint8Array,
diff --git a/lib/lib-storage/src/chunks/getDataReadable.spec.ts b/lib/lib-storage/src/chunks/getDataReadable.spec.ts
index d33e974b2dff..26be02276409 100644
--- a/lib/lib-storage/src/chunks/getDataReadable.spec.ts
+++ b/lib/lib-storage/src/chunks/getDataReadable.spec.ts
@@ -1,7 +1,7 @@
 import { Readable } from "stream";
 
 import { byteLength } from "../bytelength";
-import { RawDataPart as DataPart } from "../Upload";
+import type { RawDataPart as DataPart } from "../Upload";
 import { getChunkStream as chunkFromReadable } from "./getChunkStream";
 import { getDataReadable } from "./getDataReadable";
 
diff --git a/lib/lib-storage/src/chunks/getDataReadable.ts b/lib/lib-storage/src/chunks/getDataReadable.ts
index 5ab5f705dba0..323ebdf3c9f8 100644
--- a/lib/lib-storage/src/chunks/getDataReadable.ts
+++ b/lib/lib-storage/src/chunks/getDataReadable.ts
@@ -1,5 +1,5 @@
 import { Buffer } from "buffer"; // do not remove this import: Node.js buffer or buffer NPM module for browser.
-import { Readable } from "stream";
+import type { Readable } from "stream";
 
 export async function* getDataReadable(data: Readable): AsyncGenerator<Uint8Array> {
   for await (const chunk of data) {
diff --git a/lib/lib-storage/src/chunks/getDataReadableStream.spec.ts b/lib/lib-storage/src/chunks/getDataReadableStream.spec.ts
index bd382f0b7b98..7211f3f2e469 100644
--- a/lib/lib-storage/src/chunks/getDataReadableStream.spec.ts
+++ b/lib/lib-storage/src/chunks/getDataReadableStream.spec.ts
@@ -2,7 +2,7 @@
 import { ReadableStream } from "web-streams-polyfill";
 
 import { byteLength } from "../bytelength";
-import { RawDataPart as DataPart } from "../Upload";
+import type { RawDataPart as DataPart } from "../Upload";
 import { getChunkStream as chunkFromReadable } from "./getChunkStream";
 import { getDataReadableStream } from "./getDataReadableStream";
 
diff --git a/lib/lib-storage/src/types.ts b/lib/lib-storage/src/types.ts
index 6f8a794ea158..cb2f674234e2 100644
--- a/lib/lib-storage/src/types.ts
+++ b/lib/lib-storage/src/types.ts
@@ -1,4 +1,4 @@
-import { PutObjectCommandInput, S3Client, Tag } from "@aws-sdk/client-s3";
+import type { PutObjectCommandInput, S3Client, Tag } from "@aws-sdk/client-s3";
 import type { AbortController } from "@smithy/types";
 
 export interface Progress {
diff --git a/packages/body-checksum-browser/src/index.ts b/packages/body-checksum-browser/src/index.ts
index fd60de7a628b..93d2d79e3ade 100644
--- a/packages/body-checksum-browser/src/index.ts
+++ b/packages/body-checksum-browser/src/index.ts
@@ -1,6 +1,6 @@
 import { TreeHash } from "@aws-sdk/sha256-tree-hash";
 import { blobReader } from "@smithy/chunked-blob-reader";
-import { ChecksumConstructor, Decoder, HashConstructor, HttpRequest } from "@smithy/types";
+import type { ChecksumConstructor, Decoder, HashConstructor, HttpRequest } from "@smithy/types";
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 
diff --git a/packages/body-checksum-node/src/index.ts b/packages/body-checksum-node/src/index.ts
index 3bf3550e1647..f35fe39350f6 100644
--- a/packages/body-checksum-node/src/index.ts
+++ b/packages/body-checksum-node/src/index.ts
@@ -1,7 +1,7 @@
 import { streamReader } from "@aws-sdk/chunked-stream-reader-node";
 import { TreeHash } from "@aws-sdk/sha256-tree-hash";
 import { isArrayBuffer } from "@smithy/is-array-buffer";
-import { ChecksumConstructor, Decoder, HashConstructor, HttpRequest } from "@smithy/types";
+import type { ChecksumConstructor, Decoder, HashConstructor, HttpRequest } from "@smithy/types";
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 import { createReadStream } from "fs";
diff --git a/packages/chunked-stream-reader-node/src/index.ts b/packages/chunked-stream-reader-node/src/index.ts
index 7ff27d68fd9f..714df2daea45 100644
--- a/packages/chunked-stream-reader-node/src/index.ts
+++ b/packages/chunked-stream-reader-node/src/index.ts
@@ -1,4 +1,4 @@
-import { Readable } from "stream";
+import type { Readable } from "stream";
 /**
  * @internal
  */
diff --git a/packages/chunked-stream-reader-node/src/readable.fixture.ts b/packages/chunked-stream-reader-node/src/readable.fixture.ts
index c9410f8c2ebe..bedea7c5ac32 100644
--- a/packages/chunked-stream-reader-node/src/readable.fixture.ts
+++ b/packages/chunked-stream-reader-node/src/readable.fixture.ts
@@ -1,4 +1,5 @@
-import { Readable, ReadableOptions } from "stream";
+import type { ReadableOptions } from "stream";
+import { Readable } from "stream";
 
 /**
  * @internal
diff --git a/packages/core/src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts b/packages/core/src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts
index d8d17597755f..3f1d28030875 100644
--- a/packages/core/src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts
+++ b/packages/core/src/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.ts
@@ -1,6 +1,6 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { ServiceException } from "@smithy/smithy-client";
-import {
+import type { ServiceException } from "@smithy/smithy-client";
+import type {
   AuthScheme,
   AwsCredentialIdentity,
   HandlerExecutionContext,
diff --git a/packages/core/src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts b/packages/core/src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts
index c70d7a9e37d5..288314c18961 100644
--- a/packages/core/src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts
+++ b/packages/core/src/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.ts
@@ -4,8 +4,9 @@ import {
   memoizeIdentityProvider,
   normalizeProvider,
 } from "@smithy/core";
-import { SignatureV4, SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
-import {
+import type { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
+import { SignatureV4 } from "@smithy/signature-v4";
+import type {
   AuthScheme,
   AwsCredentialIdentity,
   AwsCredentialIdentityProvider,
diff --git a/packages/credential-provider-cognito-identity/src/CognitoProviderParameters.ts b/packages/credential-provider-cognito-identity/src/CognitoProviderParameters.ts
index 93e684eda0ea..18ef528e3411 100644
--- a/packages/credential-provider-cognito-identity/src/CognitoProviderParameters.ts
+++ b/packages/credential-provider-cognito-identity/src/CognitoProviderParameters.ts
@@ -1,5 +1,5 @@
 import type { CognitoIdentityClient, CognitoIdentityClientConfig } from "./loadCognitoIdentity";
-import { Logins } from "./Logins";
+import type { Logins } from "./Logins";
 
 /**
  * @internal
diff --git a/packages/credential-provider-cognito-identity/src/InMemoryStorage.ts b/packages/credential-provider-cognito-identity/src/InMemoryStorage.ts
index 516f8f7d2a63..85323a7c941c 100644
--- a/packages/credential-provider-cognito-identity/src/InMemoryStorage.ts
+++ b/packages/credential-provider-cognito-identity/src/InMemoryStorage.ts
@@ -1,4 +1,4 @@
-import { Storage } from "./Storage";
+import type { Storage } from "./Storage";
 
 /**
  * @internal
diff --git a/packages/credential-provider-cognito-identity/src/IndexedDbStorage.ts b/packages/credential-provider-cognito-identity/src/IndexedDbStorage.ts
index 1b44aeba1ab5..726f1de536e7 100644
--- a/packages/credential-provider-cognito-identity/src/IndexedDbStorage.ts
+++ b/packages/credential-provider-cognito-identity/src/IndexedDbStorage.ts
@@ -1,4 +1,4 @@
-import { Storage } from "./Storage";
+import type { Storage } from "./Storage";
 
 const STORE_NAME = "IdentityIds";
 
diff --git a/packages/credential-provider-cognito-identity/src/Logins.ts b/packages/credential-provider-cognito-identity/src/Logins.ts
index 204c0c4129ff..cb035446a722 100644
--- a/packages/credential-provider-cognito-identity/src/Logins.ts
+++ b/packages/credential-provider-cognito-identity/src/Logins.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 
 /**
  * @internal
diff --git a/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts b/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts
index 00651eacbf4d..49a05638400a 100644
--- a/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts
+++ b/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts
@@ -1,8 +1,8 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity, Provider } from "@smithy/types";
+import type { AwsCredentialIdentity, Provider } from "@smithy/types";
 
-import { CognitoProviderParameters } from "./CognitoProviderParameters";
+import type { CognitoProviderParameters } from "./CognitoProviderParameters";
 import { resolveLogins } from "./resolveLogins";
 
 /**
diff --git a/packages/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts b/packages/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts
index fc1e1db9e925..b55aca28f4aa 100644
--- a/packages/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts
+++ b/packages/credential-provider-cognito-identity/src/fromCognitoIdentityPool.ts
@@ -1,11 +1,12 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
 
-import { CognitoProviderParameters } from "./CognitoProviderParameters";
-import { CognitoIdentityCredentialProvider, fromCognitoIdentity } from "./fromCognitoIdentity";
+import type { CognitoProviderParameters } from "./CognitoProviderParameters";
+import type { CognitoIdentityCredentialProvider } from "./fromCognitoIdentity";
+import { fromCognitoIdentity } from "./fromCognitoIdentity";
 import { localStorage } from "./localStorage";
 import { resolveLogins } from "./resolveLogins";
-import { Storage } from "./Storage";
+import type { Storage } from "./Storage";
 
 /**
  * @internal
diff --git a/packages/credential-provider-cognito-identity/src/localStorage.ts b/packages/credential-provider-cognito-identity/src/localStorage.ts
index b5af0d44374e..9935fb0c9d1b 100644
--- a/packages/credential-provider-cognito-identity/src/localStorage.ts
+++ b/packages/credential-provider-cognito-identity/src/localStorage.ts
@@ -1,6 +1,6 @@
 import { IndexedDbStorage } from "./IndexedDbStorage";
 import { InMemoryStorage } from "./InMemoryStorage";
-import { Storage } from "./Storage";
+import type { Storage } from "./Storage";
 
 const inMemoryStorage = new InMemoryStorage();
 
diff --git a/packages/credential-provider-cognito-identity/src/resolveLogins.ts b/packages/credential-provider-cognito-identity/src/resolveLogins.ts
index 7444b5dc71d4..031ed8462acc 100644
--- a/packages/credential-provider-cognito-identity/src/resolveLogins.ts
+++ b/packages/credential-provider-cognito-identity/src/resolveLogins.ts
@@ -1,4 +1,4 @@
-import { Logins, ResolvedLogins } from "./Logins";
+import type { Logins, ResolvedLogins } from "./Logins";
 
 /**
  * @internal
diff --git a/packages/credential-provider-env/src/fromEnv.ts b/packages/credential-provider-env/src/fromEnv.ts
index 2d47bd54107e..f58157f11b39 100644
--- a/packages/credential-provider-env/src/fromEnv.ts
+++ b/packages/credential-provider-env/src/fromEnv.ts
@@ -1,6 +1,6 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 export interface FromEnvInit extends CredentialProviderOptions {}
 
diff --git a/packages/credential-provider-http/src/fromHttp/fromHttp.browser.ts b/packages/credential-provider-http/src/fromHttp/fromHttp.browser.ts
index e35e72a93c66..d0a4fe32eaf1 100644
--- a/packages/credential-provider-http/src/fromHttp/fromHttp.browser.ts
+++ b/packages/credential-provider-http/src/fromHttp/fromHttp.browser.ts
@@ -1,6 +1,6 @@
 import { FetchHttpHandler } from "@smithy/fetch-http-handler";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity, AwsCredentialIdentityProvider } from "@smithy/types";
+import type { AwsCredentialIdentity, AwsCredentialIdentityProvider } from "@smithy/types";
 
 import { checkUrl } from "./checkUrl";
 import type { FromHttpOptions } from "./fromHttpTypes";
diff --git a/packages/credential-provider-http/src/fromHttp/fromHttp.ts b/packages/credential-provider-http/src/fromHttp/fromHttp.ts
index eafe5c045b68..0e2057471d12 100644
--- a/packages/credential-provider-http/src/fromHttp/fromHttp.ts
+++ b/packages/credential-provider-http/src/fromHttp/fromHttp.ts
@@ -1,6 +1,6 @@
 import { NodeHttpHandler } from "@smithy/node-http-handler";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity, AwsCredentialIdentityProvider } from "@smithy/types";
+import type { AwsCredentialIdentity, AwsCredentialIdentityProvider } from "@smithy/types";
 import fs from "fs/promises";
 
 import { checkUrl } from "./checkUrl";
diff --git a/packages/credential-provider-http/src/fromHttp/requestHelpers.ts b/packages/credential-provider-http/src/fromHttp/requestHelpers.ts
index 594de8686817..3a31fc54ade7 100644
--- a/packages/credential-provider-http/src/fromHttp/requestHelpers.ts
+++ b/packages/credential-provider-http/src/fromHttp/requestHelpers.ts
@@ -1,11 +1,11 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
 import { HttpRequest } from "@smithy/protocol-http";
 import { parseRfc3339DateTime } from "@smithy/smithy-client";
-import { HttpResponse } from "@smithy/types";
+import type { HttpResponse } from "@smithy/types";
 import { sdkStreamMixin } from "@smithy/util-stream";
 
-import { HttpProviderCredentials } from "./fromHttpTypes";
+import type { HttpProviderCredentials } from "./fromHttpTypes";
 
 /**
  * @internal
diff --git a/packages/credential-provider-ini/src/fromIni.spec.ts b/packages/credential-provider-ini/src/fromIni.spec.ts
index 202da487bc70..aaa5c8bcccf1 100644
--- a/packages/credential-provider-ini/src/fromIni.spec.ts
+++ b/packages/credential-provider-ini/src/fromIni.spec.ts
@@ -1,5 +1,5 @@
 import { getProfileName, parseKnownFiles } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
 import { fromIni } from "./fromIni";
 import { resolveProfileData } from "./resolveProfileData";
diff --git a/packages/credential-provider-ini/src/fromIni.ts b/packages/credential-provider-ini/src/fromIni.ts
index 253f5b3935e2..9cb5bd956c2c 100644
--- a/packages/credential-provider-ini/src/fromIni.ts
+++ b/packages/credential-provider-ini/src/fromIni.ts
@@ -1,9 +1,10 @@
 import type { AssumeRoleWithWebIdentityParams } from "@aws-sdk/credential-provider-web-identity";
 import type { CredentialProviderOptions } from "@aws-sdk/types";
-import { getProfileName, parseKnownFiles, SourceProfileInit } from "@smithy/shared-ini-file-loader";
+import type { SourceProfileInit } from "@smithy/shared-ini-file-loader";
+import { getProfileName, parseKnownFiles } from "@smithy/shared-ini-file-loader";
 import type { AwsCredentialIdentity, AwsCredentialIdentityProvider, Pluggable } from "@smithy/types";
 
-import { AssumeRoleParams } from "./resolveAssumeRoleCredentials";
+import type { AssumeRoleParams } from "./resolveAssumeRoleCredentials";
 import { resolveProfileData } from "./resolveProfileData";
 
 /**
diff --git a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts
index e768d7284d67..9669978976ee 100644
--- a/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts
+++ b/packages/credential-provider-ini/src/resolveAssumeRoleCredentials.ts
@@ -1,8 +1,8 @@
 import { CredentialsProviderError } from "@smithy/property-provider";
 import { getProfileName } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentity, ParsedIniData, Profile } from "@smithy/types";
+import type { AwsCredentialIdentity, ParsedIniData, Profile } from "@smithy/types";
 
-import { FromIniInit } from "./fromIni";
+import type { FromIniInit } from "./fromIni";
 import { resolveCredentialSource } from "./resolveCredentialSource";
 import { resolveProfileData } from "./resolveProfileData";
 
diff --git a/packages/credential-provider-ini/src/resolveCredentialSource.ts b/packages/credential-provider-ini/src/resolveCredentialSource.ts
index 2cbc2db38b86..29a88532f012 100644
--- a/packages/credential-provider-ini/src/resolveCredentialSource.ts
+++ b/packages/credential-provider-ini/src/resolveCredentialSource.ts
@@ -1,6 +1,6 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * @internal
diff --git a/packages/credential-provider-ini/src/resolveProcessCredentials.spec.ts b/packages/credential-provider-ini/src/resolveProcessCredentials.spec.ts
index 831d5be9074c..a0a4b4848b08 100644
--- a/packages/credential-provider-ini/src/resolveProcessCredentials.spec.ts
+++ b/packages/credential-provider-ini/src/resolveProcessCredentials.spec.ts
@@ -1,5 +1,5 @@
 import { fromProcess } from "@aws-sdk/credential-provider-process";
-import { Credentials } from "@aws-sdk/types";
+import type { Credentials } from "@aws-sdk/types";
 
 import { isProcessProfile, resolveProcessCredentials } from "./resolveProcessCredentials";
 
diff --git a/packages/credential-provider-ini/src/resolveProcessCredentials.ts b/packages/credential-provider-ini/src/resolveProcessCredentials.ts
index 152f9db5d11a..3370f3aab902 100644
--- a/packages/credential-provider-ini/src/resolveProcessCredentials.ts
+++ b/packages/credential-provider-ini/src/resolveProcessCredentials.ts
@@ -1,6 +1,6 @@
-import { Credentials, Profile } from "@aws-sdk/types";
+import type { Credentials, Profile } from "@aws-sdk/types";
 
-import { FromIniInit } from "./fromIni";
+import type { FromIniInit } from "./fromIni";
 
 /**
  * @internal
diff --git a/packages/credential-provider-ini/src/resolveProfileData.ts b/packages/credential-provider-ini/src/resolveProfileData.ts
index fb4eb179c3ec..f827048a3931 100644
--- a/packages/credential-provider-ini/src/resolveProfileData.ts
+++ b/packages/credential-provider-ini/src/resolveProfileData.ts
@@ -1,7 +1,7 @@
 import { CredentialsProviderError } from "@smithy/property-provider";
 import type { AwsCredentialIdentity, ParsedIniData } from "@smithy/types";
 
-import { FromIniInit } from "./fromIni";
+import type { FromIniInit } from "./fromIni";
 import { isAssumeRoleProfile, resolveAssumeRoleCredentials } from "./resolveAssumeRoleCredentials";
 import { isProcessProfile, resolveProcessCredentials } from "./resolveProcessCredentials";
 import { isSsoProfile, resolveSsoCredentials } from "./resolveSsoCredentials";
diff --git a/packages/credential-provider-ini/src/resolveSsoCredentials.spec.ts b/packages/credential-provider-ini/src/resolveSsoCredentials.spec.ts
index ee943ae9170d..54f212784e17 100644
--- a/packages/credential-provider-ini/src/resolveSsoCredentials.spec.ts
+++ b/packages/credential-provider-ini/src/resolveSsoCredentials.spec.ts
@@ -1,5 +1,5 @@
 import { fromSSO, validateSsoProfile } from "@aws-sdk/credential-provider-sso";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
 import { isSsoProfile, resolveSsoCredentials } from "./resolveSsoCredentials";
 
diff --git a/packages/credential-provider-ini/src/resolveStaticCredentials.ts b/packages/credential-provider-ini/src/resolveStaticCredentials.ts
index 012dda732f06..f7a53bb5429e 100644
--- a/packages/credential-provider-ini/src/resolveStaticCredentials.ts
+++ b/packages/credential-provider-ini/src/resolveStaticCredentials.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity, Profile } from "@smithy/types";
+import type { AwsCredentialIdentity, Profile } from "@smithy/types";
 
-import { FromIniInit } from "./fromIni";
+import type { FromIniInit } from "./fromIni";
 
 /**
  * @internal
diff --git a/packages/credential-provider-ini/src/resolveWebIdentityCredentials.spec.ts b/packages/credential-provider-ini/src/resolveWebIdentityCredentials.spec.ts
index a44cf5da4ace..ac2b4b282479 100644
--- a/packages/credential-provider-ini/src/resolveWebIdentityCredentials.spec.ts
+++ b/packages/credential-provider-ini/src/resolveWebIdentityCredentials.spec.ts
@@ -1,5 +1,5 @@
 import { fromTokenFile } from "@aws-sdk/credential-provider-web-identity";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
 import { isWebIdentityProfile, resolveWebIdentityCredentials } from "./resolveWebIdentityCredentials";
 
diff --git a/packages/credential-provider-ini/src/resolveWebIdentityCredentials.ts b/packages/credential-provider-ini/src/resolveWebIdentityCredentials.ts
index 8eef85d465c4..2849990c530b 100644
--- a/packages/credential-provider-ini/src/resolveWebIdentityCredentials.ts
+++ b/packages/credential-provider-ini/src/resolveWebIdentityCredentials.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity, Profile } from "@smithy/types";
+import type { AwsCredentialIdentity, Profile } from "@smithy/types";
 
-import { FromIniInit } from "./fromIni";
+import type { FromIniInit } from "./fromIni";
 
 /**
  * @internal
diff --git a/packages/credential-provider-node/src/defaultProvider.ts b/packages/credential-provider-node/src/defaultProvider.ts
index bf1754da06f4..955ef29f192d 100644
--- a/packages/credential-provider-node/src/defaultProvider.ts
+++ b/packages/credential-provider-node/src/defaultProvider.ts
@@ -6,7 +6,7 @@ import type { FromTokenFileInit } from "@aws-sdk/credential-provider-web-identit
 import type { RemoteProviderInit } from "@smithy/credential-provider-imds";
 import { chain, CredentialsProviderError, memoize } from "@smithy/property-provider";
 import { ENV_PROFILE } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentity, MemoizedProvider } from "@smithy/types";
+import type { AwsCredentialIdentity, MemoizedProvider } from "@smithy/types";
 
 import { remoteProvider } from "./remoteProvider";
 
diff --git a/packages/credential-provider-process/src/fromProcess.spec.ts b/packages/credential-provider-process/src/fromProcess.spec.ts
index daacfb026047..c5990852d7c7 100644
--- a/packages/credential-provider-process/src/fromProcess.spec.ts
+++ b/packages/credential-provider-process/src/fromProcess.spec.ts
@@ -1,5 +1,5 @@
 import { getProfileName, parseKnownFiles } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
 import { fromProcess } from "./fromProcess";
 import { resolveProcessCredentials } from "./resolveProcessCredentials";
diff --git a/packages/credential-provider-process/src/fromProcess.ts b/packages/credential-provider-process/src/fromProcess.ts
index 719a2958c638..640ece508461 100644
--- a/packages/credential-provider-process/src/fromProcess.ts
+++ b/packages/credential-provider-process/src/fromProcess.ts
@@ -1,6 +1,7 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
-import { getProfileName, parseKnownFiles, SourceProfileInit } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { SourceProfileInit } from "@smithy/shared-ini-file-loader";
+import { getProfileName, parseKnownFiles } from "@smithy/shared-ini-file-loader";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 import { resolveProcessCredentials } from "./resolveProcessCredentials";
 
diff --git a/packages/credential-provider-process/src/getValidatedProcessCredentials.spec.ts b/packages/credential-provider-process/src/getValidatedProcessCredentials.spec.ts
index b72d91ed14a6..15a66ca19345 100644
--- a/packages/credential-provider-process/src/getValidatedProcessCredentials.spec.ts
+++ b/packages/credential-provider-process/src/getValidatedProcessCredentials.spec.ts
@@ -1,7 +1,7 @@
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
 import { getValidatedProcessCredentials } from "./getValidatedProcessCredentials";
-import { ProcessCredentials } from "./ProcessCredentials";
+import type { ProcessCredentials } from "./ProcessCredentials";
 
 describe(getValidatedProcessCredentials.name, () => {
   const mockProfileName = "mockProfileName";
diff --git a/packages/credential-provider-process/src/getValidatedProcessCredentials.ts b/packages/credential-provider-process/src/getValidatedProcessCredentials.ts
index c8ba5a59fc47..fa8c9a678e86 100644
--- a/packages/credential-provider-process/src/getValidatedProcessCredentials.ts
+++ b/packages/credential-provider-process/src/getValidatedProcessCredentials.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
-import { ProcessCredentials } from "./ProcessCredentials";
+import type { ProcessCredentials } from "./ProcessCredentials";
 
 /**
  * @internal
diff --git a/packages/credential-provider-process/src/resolveProcessCredentials.spec.ts b/packages/credential-provider-process/src/resolveProcessCredentials.spec.ts
index c0595660d981..91359a6271f6 100644
--- a/packages/credential-provider-process/src/resolveProcessCredentials.spec.ts
+++ b/packages/credential-provider-process/src/resolveProcessCredentials.spec.ts
@@ -1,5 +1,5 @@
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { AwsCredentialIdentity } from "@smithy/types";
 import { promisify } from "util";
 
 import { getValidatedProcessCredentials } from "./getValidatedProcessCredentials";
diff --git a/packages/credential-provider-process/src/resolveProcessCredentials.ts b/packages/credential-provider-process/src/resolveProcessCredentials.ts
index 28a5e56f7a49..3e32bdd9655d 100644
--- a/packages/credential-provider-process/src/resolveProcessCredentials.ts
+++ b/packages/credential-provider-process/src/resolveProcessCredentials.ts
@@ -1,10 +1,10 @@
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity, ParsedIniData } from "@smithy/types";
+import type { AwsCredentialIdentity, ParsedIniData } from "@smithy/types";
 import { exec } from "child_process";
 import { promisify } from "util";
 
 import { getValidatedProcessCredentials } from "./getValidatedProcessCredentials";
-import { ProcessCredentials } from "./ProcessCredentials";
+import type { ProcessCredentials } from "./ProcessCredentials";
 
 /**
  * @internal
diff --git a/packages/credential-provider-sso/src/fromSSO.spec.ts b/packages/credential-provider-sso/src/fromSSO.spec.ts
index bd86bc8ee370..f9e21a460c76 100644
--- a/packages/credential-provider-sso/src/fromSSO.spec.ts
+++ b/packages/credential-provider-sso/src/fromSSO.spec.ts
@@ -1,4 +1,4 @@
-import { SSOClient } from "@aws-sdk/client-sso";
+import type { SSOClient } from "@aws-sdk/client-sso";
 import { CredentialsProviderError } from "@smithy/property-provider";
 import { getProfileName, parseKnownFiles } from "@smithy/shared-ini-file-loader";
 
diff --git a/packages/credential-provider-sso/src/fromSSO.ts b/packages/credential-provider-sso/src/fromSSO.ts
index 7ba762e292a9..be73764570e8 100644
--- a/packages/credential-provider-sso/src/fromSSO.ts
+++ b/packages/credential-provider-sso/src/fromSSO.ts
@@ -1,7 +1,8 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { getProfileName, loadSsoSessionData, parseKnownFiles, SourceProfileInit } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { SourceProfileInit } from "@smithy/shared-ini-file-loader";
+import { getProfileName, loadSsoSessionData, parseKnownFiles } from "@smithy/shared-ini-file-loader";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 import { isSsoProfile } from "./isSsoProfile";
 import type { SSOClient, SSOClientConfig } from "./loadSso";
diff --git a/packages/credential-provider-sso/src/isSsoProfile.ts b/packages/credential-provider-sso/src/isSsoProfile.ts
index e3054bdd885a..13f431f64e97 100644
--- a/packages/credential-provider-sso/src/isSsoProfile.ts
+++ b/packages/credential-provider-sso/src/isSsoProfile.ts
@@ -1,6 +1,6 @@
-import { Profile } from "@smithy/types";
+import type { Profile } from "@smithy/types";
 
-import { SsoProfile } from "./types";
+import type { SsoProfile } from "./types";
 
 /**
  * @internal
diff --git a/packages/credential-provider-sso/src/resolveSSOCredentials.ts b/packages/credential-provider-sso/src/resolveSSOCredentials.ts
index d7e78ffdf999..bb8f19c37afc 100644
--- a/packages/credential-provider-sso/src/resolveSSOCredentials.ts
+++ b/packages/credential-provider-sso/src/resolveSSOCredentials.ts
@@ -1,9 +1,10 @@
 import { fromSso as getSsoTokenProvider } from "@aws-sdk/token-providers";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { getSSOTokenFromFile, SSOToken } from "@smithy/shared-ini-file-loader";
-import { AwsCredentialIdentity } from "@smithy/types";
+import type { SSOToken } from "@smithy/shared-ini-file-loader";
+import { getSSOTokenFromFile } from "@smithy/shared-ini-file-loader";
+import type { AwsCredentialIdentity } from "@smithy/types";
 
-import { FromSSOInit, SsoCredentialsParameters } from "./fromSSO";
+import type { FromSSOInit, SsoCredentialsParameters } from "./fromSSO";
 import type { GetRoleCredentialsCommandOutput } from "./loadSso";
 
 const SHOULD_FAIL_CREDENTIAL_CHAIN = false;
diff --git a/packages/credential-provider-sso/src/types.ts b/packages/credential-provider-sso/src/types.ts
index c7124abf445f..3b0f1410d102 100644
--- a/packages/credential-provider-sso/src/types.ts
+++ b/packages/credential-provider-sso/src/types.ts
@@ -1,4 +1,4 @@
-import { Profile } from "@smithy/types";
+import type { Profile } from "@smithy/types";
 
 /**
  * @internal
diff --git a/packages/credential-provider-sso/src/validateSsoProfile.ts b/packages/credential-provider-sso/src/validateSsoProfile.ts
index 9ce6400145be..bf35ec548ff5 100644
--- a/packages/credential-provider-sso/src/validateSsoProfile.ts
+++ b/packages/credential-provider-sso/src/validateSsoProfile.ts
@@ -1,6 +1,6 @@
 import { CredentialsProviderError } from "@smithy/property-provider";
 
-import { SsoProfile } from "./types";
+import type { SsoProfile } from "./types";
 
 /**
  * @internal
diff --git a/packages/credential-provider-web-identity/src/fromTokenFile.ts b/packages/credential-provider-web-identity/src/fromTokenFile.ts
index 2b73cc9d0e04..2e56f3df4521 100644
--- a/packages/credential-provider-web-identity/src/fromTokenFile.ts
+++ b/packages/credential-provider-web-identity/src/fromTokenFile.ts
@@ -1,9 +1,10 @@
-import { CredentialProviderOptions } from "@aws-sdk/types";
+import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
 import type { AwsCredentialIdentityProvider } from "@smithy/types";
 import { readFileSync } from "fs";
 
-import { fromWebToken, FromWebTokenInit } from "./fromWebToken";
+import type { FromWebTokenInit } from "./fromWebToken";
+import { fromWebToken } from "./fromWebToken";
 
 const ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
 const ENV_ROLE_ARN = "AWS_ROLE_ARN";
diff --git a/packages/credential-providers/src/fromCognitoIdentity.ts b/packages/credential-providers/src/fromCognitoIdentity.ts
index 16167efbfdb0..c45f6b77bf2f 100644
--- a/packages/credential-providers/src/fromCognitoIdentity.ts
+++ b/packages/credential-providers/src/fromCognitoIdentity.ts
@@ -1,9 +1,9 @@
 import type { CognitoIdentityClientConfig } from "@aws-sdk/client-cognito-identity";
-import {
+import type {
   CognitoIdentityCredentialProvider as _CognitoIdentityCredentialProvider,
-  fromCognitoIdentity as _fromCognitoIdentity,
   FromCognitoIdentityParameters as _FromCognitoIdentityParameters,
 } from "@aws-sdk/credential-provider-cognito-identity";
+import { fromCognitoIdentity as _fromCognitoIdentity } from "@aws-sdk/credential-provider-cognito-identity";
 
 export interface FromCognitoIdentityParameters extends Omit<_FromCognitoIdentityParameters, "client"> {
   /**
diff --git a/packages/credential-providers/src/fromCognitoIdentityPool.ts b/packages/credential-providers/src/fromCognitoIdentityPool.ts
index 9f6082ccb3e2..19bd7a994def 100644
--- a/packages/credential-providers/src/fromCognitoIdentityPool.ts
+++ b/packages/credential-providers/src/fromCognitoIdentityPool.ts
@@ -1,9 +1,9 @@
 import type { CognitoIdentityClientConfig } from "@aws-sdk/client-cognito-identity";
-import {
+import type {
   CognitoIdentityCredentialProvider,
-  fromCognitoIdentityPool as _fromCognitoIdentityPool,
   FromCognitoIdentityPoolParameters as _FromCognitoIdentityPoolParameters,
 } from "@aws-sdk/credential-provider-cognito-identity";
+import { fromCognitoIdentityPool as _fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity";
 
 export interface FromCognitoIdentityPoolParameters extends Omit<_FromCognitoIdentityPoolParameters, "client"> {
   clientConfig?: CognitoIdentityClientConfig;
diff --git a/packages/credential-providers/src/fromContainerMetadata.ts b/packages/credential-providers/src/fromContainerMetadata.ts
index ee2d9b28cf5c..1f04bde3a97c 100644
--- a/packages/credential-providers/src/fromContainerMetadata.ts
+++ b/packages/credential-providers/src/fromContainerMetadata.ts
@@ -1,9 +1,7 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
-import {
-  fromContainerMetadata as _fromContainerMetadata,
-  RemoteProviderInit as _RemoteProviderInit,
-} from "@smithy/credential-provider-imds";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { RemoteProviderInit as _RemoteProviderInit } from "@smithy/credential-provider-imds";
+import { fromContainerMetadata as _fromContainerMetadata } from "@smithy/credential-provider-imds";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 export interface RemoteProviderInit extends _RemoteProviderInit, CredentialProviderOptions {}
 
diff --git a/packages/credential-providers/src/fromEnv.ts b/packages/credential-providers/src/fromEnv.ts
index 2d939ba609cc..08b9a9ed1d47 100644
--- a/packages/credential-providers/src/fromEnv.ts
+++ b/packages/credential-providers/src/fromEnv.ts
@@ -1,5 +1,6 @@
-import { fromEnv as _fromEnv, FromEnvInit } from "@aws-sdk/credential-provider-env";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { FromEnvInit } from "@aws-sdk/credential-provider-env";
+import { fromEnv as _fromEnv } from "@aws-sdk/credential-provider-env";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * Create a credential provider that reads credentials from the following environment variables:
diff --git a/packages/credential-providers/src/fromIni.ts b/packages/credential-providers/src/fromIni.ts
index e98825009c45..0f593c28b0aa 100644
--- a/packages/credential-providers/src/fromIni.ts
+++ b/packages/credential-providers/src/fromIni.ts
@@ -1,5 +1,6 @@
-import { fromIni as _fromIni, FromIniInit } from "@aws-sdk/credential-provider-ini";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { FromIniInit } from "@aws-sdk/credential-provider-ini";
+import { fromIni as _fromIni } from "@aws-sdk/credential-provider-ini";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * Creates a credential provider function that reads from a shared credentials file at `~/.aws/credentials` and a
diff --git a/packages/credential-providers/src/fromInstanceMetadata.ts b/packages/credential-providers/src/fromInstanceMetadata.ts
index 00347eac5fe1..e99c72ac91d2 100644
--- a/packages/credential-providers/src/fromInstanceMetadata.ts
+++ b/packages/credential-providers/src/fromInstanceMetadata.ts
@@ -1,9 +1,7 @@
 import type { CredentialProviderOptions } from "@aws-sdk/types";
-import {
-  fromInstanceMetadata as _fromInstanceMetadata,
-  RemoteProviderConfig as _RemoteProviderInit,
-} from "@smithy/credential-provider-imds";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { RemoteProviderConfig as _RemoteProviderInit } from "@smithy/credential-provider-imds";
+import { fromInstanceMetadata as _fromInstanceMetadata } from "@smithy/credential-provider-imds";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * Creates a credential provider function that reads from the EC2 instance metadata service.
diff --git a/packages/credential-providers/src/fromNodeProviderChain.ts b/packages/credential-providers/src/fromNodeProviderChain.ts
index 2c39f9feaa65..6b0a42302c8f 100644
--- a/packages/credential-providers/src/fromNodeProviderChain.ts
+++ b/packages/credential-providers/src/fromNodeProviderChain.ts
@@ -1,4 +1,5 @@
-import { defaultProvider, DefaultProviderInit } from "@aws-sdk/credential-provider-node";
+import type { DefaultProviderInit } from "@aws-sdk/credential-provider-node";
+import { defaultProvider } from "@aws-sdk/credential-provider-node";
 import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
diff --git a/packages/credential-providers/src/fromProcess.ts b/packages/credential-providers/src/fromProcess.ts
index e71dbee9839c..0c34d5f08314 100644
--- a/packages/credential-providers/src/fromProcess.ts
+++ b/packages/credential-providers/src/fromProcess.ts
@@ -1,5 +1,6 @@
-import { fromProcess as _fromProcess, FromProcessInit } from "@aws-sdk/credential-provider-process";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { FromProcessInit } from "@aws-sdk/credential-provider-process";
+import { fromProcess as _fromProcess } from "@aws-sdk/credential-provider-process";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * Creates a credential provider function that executes a given process and attempt to read its standard output to
diff --git a/packages/credential-providers/src/fromSSO.ts b/packages/credential-providers/src/fromSSO.ts
index 19133bf75980..46a55c635f61 100644
--- a/packages/credential-providers/src/fromSSO.ts
+++ b/packages/credential-providers/src/fromSSO.ts
@@ -1,5 +1,6 @@
-import { fromSSO as _fromSSO, FromSSOInit } from "@aws-sdk/credential-provider-sso";
-import { AwsCredentialIdentityProvider } from "@smithy/types";
+import type { FromSSOInit } from "@aws-sdk/credential-provider-sso";
+import { fromSSO as _fromSSO } from "@aws-sdk/credential-provider-sso";
+import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
  * Creates a credential provider function that reads from the _resolved_ access token from local disk then requests
diff --git a/packages/credential-providers/src/fromTemporaryCredentials.ts b/packages/credential-providers/src/fromTemporaryCredentials.ts
index fc48c992383a..1d04b9363a39 100644
--- a/packages/credential-providers/src/fromTemporaryCredentials.ts
+++ b/packages/credential-providers/src/fromTemporaryCredentials.ts
@@ -1,7 +1,7 @@
 import type { AssumeRoleCommandInput, STSClient, STSClientConfig } from "@aws-sdk/client-sts";
 import type { CredentialProviderOptions } from "@aws-sdk/types";
 import { CredentialsProviderError } from "@smithy/property-provider";
-import { AwsCredentialIdentity, AwsCredentialIdentityProvider, Pluggable } from "@smithy/types";
+import type { AwsCredentialIdentity, AwsCredentialIdentityProvider, Pluggable } from "@smithy/types";
 
 export interface FromTemporaryCredentialsOptions extends CredentialProviderOptions {
   params: Omit<AssumeRoleCommandInput, "RoleSessionName"> & { RoleSessionName?: string };
diff --git a/packages/credential-providers/src/fromTokenFile.ts b/packages/credential-providers/src/fromTokenFile.ts
index c5614c12d3ca..ac9df1fe1d5c 100644
--- a/packages/credential-providers/src/fromTokenFile.ts
+++ b/packages/credential-providers/src/fromTokenFile.ts
@@ -1,4 +1,5 @@
-import { fromTokenFile as _fromTokenFile, FromTokenFileInit } from "@aws-sdk/credential-provider-web-identity";
+import type { FromTokenFileInit } from "@aws-sdk/credential-provider-web-identity";
+import { fromTokenFile as _fromTokenFile } from "@aws-sdk/credential-provider-web-identity";
 import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
diff --git a/packages/credential-providers/src/fromWebToken.ts b/packages/credential-providers/src/fromWebToken.ts
index 93e75cbd83ba..88d651fc89b3 100644
--- a/packages/credential-providers/src/fromWebToken.ts
+++ b/packages/credential-providers/src/fromWebToken.ts
@@ -1,4 +1,5 @@
-import { fromWebToken as _fromWebToken, FromWebTokenInit } from "@aws-sdk/credential-provider-web-identity";
+import type { FromWebTokenInit } from "@aws-sdk/credential-provider-web-identity";
+import { fromWebToken as _fromWebToken } from "@aws-sdk/credential-provider-web-identity";
 import type { AwsCredentialIdentityProvider } from "@smithy/types";
 
 /**
diff --git a/packages/ec2-metadata-service/src/ConfigLoaders.ts b/packages/ec2-metadata-service/src/ConfigLoaders.ts
index a1cbc1c0e782..ac166ef9b37e 100644
--- a/packages/ec2-metadata-service/src/ConfigLoaders.ts
+++ b/packages/ec2-metadata-service/src/ConfigLoaders.ts
@@ -1,4 +1,4 @@
-import { LoadedConfigSelectors } from "@smithy/node-config-provider";
+import type { LoadedConfigSelectors } from "@smithy/node-config-provider";
 
 import { Endpoint } from "./Endpoint";
 import { EndpointMode } from "./EndpointMode";
diff --git a/packages/ec2-metadata-service/src/MetadataService.ts b/packages/ec2-metadata-service/src/MetadataService.ts
index 7ecc40d43fb2..feee1840b38c 100644
--- a/packages/ec2-metadata-service/src/MetadataService.ts
+++ b/packages/ec2-metadata-service/src/MetadataService.ts
@@ -1,11 +1,11 @@
-import { HttpHandlerOptions } from "@aws-sdk/types";
+import type { HttpHandlerOptions } from "@aws-sdk/types";
 import { loadConfig } from "@smithy/node-config-provider";
 import { NodeHttpHandler } from "@smithy/node-http-handler";
 import { HttpRequest } from "@smithy/protocol-http";
 import { sdkStreamMixin } from "@smithy/util-stream";
 
 import { ENDPOINT_SELECTORS, IMDSv1_DISABLED_SELECTORS } from "./ConfigLoaders";
-import { MetadataServiceOptions } from "./MetadataServiceOptions";
+import type { MetadataServiceOptions } from "./MetadataServiceOptions";
 
 /**
  * @public
diff --git a/packages/endpoint-cache/src/EndpointCache.spec.ts b/packages/endpoint-cache/src/EndpointCache.spec.ts
index e1e146015211..b1f42c99db44 100644
--- a/packages/endpoint-cache/src/EndpointCache.spec.ts
+++ b/packages/endpoint-cache/src/EndpointCache.spec.ts
@@ -1,6 +1,6 @@
 import LRUCache from "mnemonist/lru-cache";
 
-import { Endpoint } from "./Endpoint";
+import type { Endpoint } from "./Endpoint";
 import { EndpointCache } from "./EndpointCache";
 
 jest.mock("mnemonist/lru-cache");
diff --git a/packages/endpoint-cache/src/EndpointCache.ts b/packages/endpoint-cache/src/EndpointCache.ts
index efec95569bbc..bad5d4c97cbf 100644
--- a/packages/endpoint-cache/src/EndpointCache.ts
+++ b/packages/endpoint-cache/src/EndpointCache.ts
@@ -1,6 +1,6 @@
 import LRUCache from "mnemonist/lru-cache";
 
-import { Endpoint } from "./Endpoint";
+import type { Endpoint } from "./Endpoint";
 
 /**
  * @internal
diff --git a/packages/eventstream-handler-node/src/EventSigningStream.spec.ts b/packages/eventstream-handler-node/src/EventSigningStream.spec.ts
index 964d062c6367..32ef0f458b77 100644
--- a/packages/eventstream-handler-node/src/EventSigningStream.spec.ts
+++ b/packages/eventstream-handler-node/src/EventSigningStream.spec.ts
@@ -1,5 +1,5 @@
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { Message, MessageHeaders, SignedMessage } from "@smithy/types";
+import type { Message, MessageHeaders, SignedMessage } from "@smithy/types";
 import { fromUtf8, toUtf8 } from "@smithy/util-utf8";
 
 import { EventSigningStream } from "./EventSigningStream";
diff --git a/packages/eventstream-handler-node/src/EventSigningStream.ts b/packages/eventstream-handler-node/src/EventSigningStream.ts
index e45ef1a30c3a..63998e61928b 100644
--- a/packages/eventstream-handler-node/src/EventSigningStream.ts
+++ b/packages/eventstream-handler-node/src/EventSigningStream.ts
@@ -1,6 +1,7 @@
-import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { MessageHeaders, MessageSigner } from "@smithy/types";
-import { Transform, TransformCallback, TransformOptions } from "stream";
+import type { EventStreamCodec } from "@smithy/eventstream-codec";
+import type { MessageHeaders, MessageSigner } from "@smithy/types";
+import type { TransformCallback, TransformOptions } from "stream";
+import { Transform } from "stream";
 
 /**
  * @internal
diff --git a/packages/eventstream-handler-node/src/EventStreamPayloadHandler.spec.ts b/packages/eventstream-handler-node/src/EventStreamPayloadHandler.spec.ts
index a37ef5e160ca..19b318d6973c 100644
--- a/packages/eventstream-handler-node/src/EventStreamPayloadHandler.spec.ts
+++ b/packages/eventstream-handler-node/src/EventStreamPayloadHandler.spec.ts
@@ -1,5 +1,12 @@
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { Decoder, Encoder, FinalizeHandler, FinalizeHandlerArguments, HttpRequest, MessageSigner } from "@smithy/types";
+import type {
+  Decoder,
+  Encoder,
+  FinalizeHandler,
+  FinalizeHandlerArguments,
+  HttpRequest,
+  MessageSigner,
+} from "@smithy/types";
 import { PassThrough, Readable } from "stream";
 
 import { EventSigningStream } from "./EventSigningStream";
diff --git a/packages/eventstream-handler-node/src/EventStreamPayloadHandler.ts b/packages/eventstream-handler-node/src/EventStreamPayloadHandler.ts
index 60fb215b4f2e..314f10796541 100644
--- a/packages/eventstream-handler-node/src/EventStreamPayloadHandler.ts
+++ b/packages/eventstream-handler-node/src/EventStreamPayloadHandler.ts
@@ -1,5 +1,5 @@
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import {
+import type {
   Decoder,
   Encoder,
   EventStreamPayloadHandler as IEventStreamPayloadHandler,
diff --git a/packages/eventstream-handler-node/src/provider.ts b/packages/eventstream-handler-node/src/provider.ts
index bd0706281ea8..88ce9b630b0c 100644
--- a/packages/eventstream-handler-node/src/provider.ts
+++ b/packages/eventstream-handler-node/src/provider.ts
@@ -1,11 +1,5 @@
-import {
-  Decoder,
-  Encoder,
-  EventSigner,
-  EventStreamPayloadHandlerProvider,
-  MessageSigner,
-  Provider,
-} from "@smithy/types";
+import type { Decoder, Encoder, EventStreamPayloadHandlerProvider, MessageSigner, Provider } from "@smithy/types";
+import { EventSigner } from "@smithy/types";
 
 import { EventStreamPayloadHandler } from "./EventStreamPayloadHandler";
 
diff --git a/packages/middleware-api-key/src/apiKeyConfiguration.ts b/packages/middleware-api-key/src/apiKeyConfiguration.ts
index a3050a27fee5..9983f741affa 100644
--- a/packages/middleware-api-key/src/apiKeyConfiguration.ts
+++ b/packages/middleware-api-key/src/apiKeyConfiguration.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 import { normalizeProvider } from "@smithy/util-middleware";
 
 /**
diff --git a/packages/middleware-api-key/src/apiKeyMiddleware.spec.ts b/packages/middleware-api-key/src/apiKeyMiddleware.spec.ts
index 5bc8b5319c20..2b0328dce9e6 100644
--- a/packages/middleware-api-key/src/apiKeyMiddleware.spec.ts
+++ b/packages/middleware-api-key/src/apiKeyMiddleware.spec.ts
@@ -1,5 +1,6 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { HttpAuthLocation, MiddlewareStack } from "@smithy/types";
+import type { MiddlewareStack } from "@smithy/types";
+import { HttpAuthLocation } from "@smithy/types";
 
 import { apiKeyMiddleware, getApiKeyPlugin } from "./index";
 
diff --git a/packages/middleware-api-key/src/apiKeyMiddleware.ts b/packages/middleware-api-key/src/apiKeyMiddleware.ts
index 893b694c6d81..aa84ab715a69 100644
--- a/packages/middleware-api-key/src/apiKeyMiddleware.ts
+++ b/packages/middleware-api-key/src/apiKeyMiddleware.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   FinalizeHandler,
   FinalizeHandlerArguments,
   FinalizeHandlerOutput,
@@ -10,7 +10,7 @@ import {
   RelativeMiddlewareOptions,
 } from "@smithy/types";
 
-import { ApiKeyResolvedConfig } from "./apiKeyConfiguration";
+import type { ApiKeyResolvedConfig } from "./apiKeyConfiguration";
 
 /**
  * Middleware to inject the API key into the HTTP request.
diff --git a/packages/middleware-bucket-endpoint/src/NodeDisableMultiregionAccessPointConfigOptions.ts b/packages/middleware-bucket-endpoint/src/NodeDisableMultiregionAccessPointConfigOptions.ts
index 51ba2c2be196..b75d9cef0132 100644
--- a/packages/middleware-bucket-endpoint/src/NodeDisableMultiregionAccessPointConfigOptions.ts
+++ b/packages/middleware-bucket-endpoint/src/NodeDisableMultiregionAccessPointConfigOptions.ts
@@ -1,4 +1,4 @@
-import { LoadedConfigSelectors } from "@smithy/node-config-provider";
+import type { LoadedConfigSelectors } from "@smithy/node-config-provider";
 import { booleanSelector, SelectorType } from "@smithy/util-config-provider";
 
 export const NODE_DISABLE_MULTIREGION_ACCESS_POINT_ENV_NAME = "AWS_S3_DISABLE_MULTIREGION_ACCESS_POINTS";
diff --git a/packages/middleware-bucket-endpoint/src/NodeUseArnRegionConfigOptions.ts b/packages/middleware-bucket-endpoint/src/NodeUseArnRegionConfigOptions.ts
index d229ee102851..bc79b90e3921 100644
--- a/packages/middleware-bucket-endpoint/src/NodeUseArnRegionConfigOptions.ts
+++ b/packages/middleware-bucket-endpoint/src/NodeUseArnRegionConfigOptions.ts
@@ -1,4 +1,4 @@
-import { LoadedConfigSelectors } from "@smithy/node-config-provider";
+import type { LoadedConfigSelectors } from "@smithy/node-config-provider";
 import { booleanSelector, SelectorType } from "@smithy/util-config-provider";
 
 export const NODE_USE_ARN_REGION_ENV_NAME = "AWS_S3_USE_ARN_REGION";
diff --git a/packages/middleware-bucket-endpoint/src/bucketEndpointMiddleware.ts b/packages/middleware-bucket-endpoint/src/bucketEndpointMiddleware.ts
index 8cb58b6cea71..af936e6756f5 100644
--- a/packages/middleware-bucket-endpoint/src/bucketEndpointMiddleware.ts
+++ b/packages/middleware-bucket-endpoint/src/bucketEndpointMiddleware.ts
@@ -1,6 +1,6 @@
 import { parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOutput,
@@ -12,7 +12,7 @@ import {
 } from "@smithy/types";
 
 import { bucketHostname } from "./bucketHostname";
-import { BucketEndpointResolvedConfig } from "./configurations";
+import type { BucketEndpointResolvedConfig } from "./configurations";
 
 export const bucketEndpointMiddleware =
   (options: BucketEndpointResolvedConfig): BuildMiddleware<any, any> =>
diff --git a/packages/middleware-bucket-endpoint/src/bucketHostname.ts b/packages/middleware-bucket-endpoint/src/bucketHostname.ts
index f715f0d6f0f3..56766bd06865 100644
--- a/packages/middleware-bucket-endpoint/src/bucketHostname.ts
+++ b/packages/middleware-bucket-endpoint/src/bucketHostname.ts
@@ -1,8 +1,7 @@
-import { ARN } from "@aws-sdk/util-arn-parser";
+import type { ARN } from "@aws-sdk/util-arn-parser";
 
+import type { ArnHostnameParams, BucketHostnameParams } from "./bucketHostnameUtils";
 import {
-  ArnHostnameParams,
-  BucketHostnameParams,
   DOT_PATTERN,
   getArnResources,
   getSuffix,
diff --git a/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts b/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts
index fe50709caccf..4755e6d88d9a 100644
--- a/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts
+++ b/packages/middleware-bucket-endpoint/src/bucketHostnameUtils.ts
@@ -1,4 +1,4 @@
-import { ARN } from "@aws-sdk/util-arn-parser";
+import type { ARN } from "@aws-sdk/util-arn-parser";
 
 const DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/;
 const IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/;
diff --git a/packages/middleware-bucket-endpoint/src/configurations.ts b/packages/middleware-bucket-endpoint/src/configurations.ts
index f555ad0484f8..996daadc77f6 100644
--- a/packages/middleware-bucket-endpoint/src/configurations.ts
+++ b/packages/middleware-bucket-endpoint/src/configurations.ts
@@ -1,4 +1,4 @@
-import { Provider, RegionInfoProvider } from "@smithy/types";
+import type { Provider, RegionInfoProvider } from "@smithy/types";
 
 export interface BucketEndpointInputConfig {
   /**
diff --git a/packages/middleware-endpoint-discovery/src/configurations.ts b/packages/middleware-endpoint-discovery/src/configurations.ts
index 3dfb07ac038c..c0f2c162c273 100644
--- a/packages/middleware-endpoint-discovery/src/configurations.ts
+++ b/packages/middleware-endpoint-discovery/src/configurations.ts
@@ -1,4 +1,4 @@
-import { LoadedConfigSelectors } from "@smithy/node-config-provider";
+import type { LoadedConfigSelectors } from "@smithy/node-config-provider";
 
 const ENV_ENDPOINT_DISCOVERY = ["AWS_ENABLE_ENDPOINT_DISCOVERY", "AWS_ENDPOINT_DISCOVERY_ENABLED"];
 const CONFIG_ENDPOINT_DISCOVERY = "endpoint_discovery_enabled";
diff --git a/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.spec.ts b/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.spec.ts
index 340450e0fe71..293bee0d698b 100644
--- a/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.spec.ts
+++ b/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.spec.ts
@@ -1,6 +1,6 @@
-import { EndpointCache } from "@aws-sdk/endpoint-cache";
+import type { EndpointCache } from "@aws-sdk/endpoint-cache";
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerArguments, MiddlewareStack } from "@smithy/types";
+import type { BuildHandlerArguments, MiddlewareStack } from "@smithy/types";
 
 import { endpointDiscoveryMiddleware } from "./endpointDiscoveryMiddleware";
 import { getCacheKey } from "./getCacheKey";
diff --git a/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.ts b/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.ts
index ed8146299c4c..9b206b810a67 100644
--- a/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.ts
+++ b/packages/middleware-endpoint-discovery/src/endpointDiscoveryMiddleware.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOutput,
@@ -8,8 +8,8 @@ import {
 } from "@smithy/types";
 
 import { getCacheKey } from "./getCacheKey";
-import { EndpointDiscoveryMiddlewareConfig } from "./getEndpointDiscoveryPlugin";
-import { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
+import type { EndpointDiscoveryMiddlewareConfig } from "./getEndpointDiscoveryPlugin";
+import type { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
 import { updateDiscoveredEndpointInCache } from "./updateDiscoveredEndpointInCache";
 
 export const endpointDiscoveryMiddleware =
diff --git a/packages/middleware-endpoint-discovery/src/getCacheKey.ts b/packages/middleware-endpoint-discovery/src/getCacheKey.ts
index 64c618b63a65..48f741a2bb5e 100644
--- a/packages/middleware-endpoint-discovery/src/getCacheKey.ts
+++ b/packages/middleware-endpoint-discovery/src/getCacheKey.ts
@@ -1,4 +1,4 @@
-import { AwsCredentialIdentity, Provider } from "@smithy/types";
+import type { AwsCredentialIdentity, Provider } from "@smithy/types";
 
 /**
  * Generate key to index the endpoints in the cache
diff --git a/packages/middleware-endpoint-discovery/src/getEndpointDiscoveryPlugin.ts b/packages/middleware-endpoint-discovery/src/getEndpointDiscoveryPlugin.ts
index 1e668a650b99..ae20c1aab856 100644
--- a/packages/middleware-endpoint-discovery/src/getEndpointDiscoveryPlugin.ts
+++ b/packages/middleware-endpoint-discovery/src/getEndpointDiscoveryPlugin.ts
@@ -1,7 +1,7 @@
-import { BuildHandlerOptions, HttpHandlerOptions, MiddlewareStack, Pluggable } from "@smithy/types";
+import type { BuildHandlerOptions, HttpHandlerOptions, MiddlewareStack, Pluggable } from "@smithy/types";
 
 import { endpointDiscoveryMiddleware } from "./endpointDiscoveryMiddleware";
-import { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
+import type { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
 
 export const endpointDiscoveryMiddlewareOptions: BuildHandlerOptions = {
   name: "endpointDiscoveryMiddleware",
diff --git a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts
index c0b9afee7d94..883cc372383d 100644
--- a/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts
+++ b/packages/middleware-endpoint-discovery/src/resolveEndpointDiscoveryConfig.ts
@@ -1,5 +1,5 @@
 import { EndpointCache } from "@aws-sdk/endpoint-cache";
-import { AwsCredentialIdentity, MemoizedProvider, Provider } from "@smithy/types";
+import type { AwsCredentialIdentity, MemoizedProvider, Provider } from "@smithy/types";
 
 export interface PreviouslyResolved {
   isCustomEndpoint?: boolean;
diff --git a/packages/middleware-endpoint-discovery/src/updateDiscoveredEndpointInCache.ts b/packages/middleware-endpoint-discovery/src/updateDiscoveredEndpointInCache.ts
index 1cccf15a513e..2372e57d7afd 100644
--- a/packages/middleware-endpoint-discovery/src/updateDiscoveredEndpointInCache.ts
+++ b/packages/middleware-endpoint-discovery/src/updateDiscoveredEndpointInCache.ts
@@ -1,5 +1,5 @@
-import { EndpointDiscoveryMiddlewareConfig } from "./getEndpointDiscoveryPlugin";
-import { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
+import type { EndpointDiscoveryMiddlewareConfig } from "./getEndpointDiscoveryPlugin";
+import type { EndpointDiscoveryResolvedConfig, PreviouslyResolved } from "./resolveEndpointDiscoveryConfig";
 
 export interface UpdateDiscoveredEndpointInCacheOptions extends EndpointDiscoveryMiddlewareConfig {
   cacheKey: string;
diff --git a/packages/middleware-eventstream/src/eventStreamConfiguration.ts b/packages/middleware-eventstream/src/eventStreamConfiguration.ts
index b82fa0ffa2f7..2ea100cf0d47 100644
--- a/packages/middleware-eventstream/src/eventStreamConfiguration.ts
+++ b/packages/middleware-eventstream/src/eventStreamConfiguration.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   Decoder,
   Encoder,
   EventSigner,
diff --git a/packages/middleware-eventstream/src/eventStreamHandlingMiddleware.ts b/packages/middleware-eventstream/src/eventStreamHandlingMiddleware.ts
index dffcd2024359..46d17fb8d582 100644
--- a/packages/middleware-eventstream/src/eventStreamHandlingMiddleware.ts
+++ b/packages/middleware-eventstream/src/eventStreamHandlingMiddleware.ts
@@ -1,7 +1,7 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { FinalizeRequestMiddleware, RelativeMiddlewareOptions } from "@smithy/types";
+import type { FinalizeRequestMiddleware, RelativeMiddlewareOptions } from "@smithy/types";
 
-import { EventStreamResolvedConfig } from "./eventStreamConfiguration";
+import type { EventStreamResolvedConfig } from "./eventStreamConfiguration";
 
 export const eventStreamHandlingMiddleware =
   (options: EventStreamResolvedConfig): FinalizeRequestMiddleware<any, any> =>
diff --git a/packages/middleware-eventstream/src/eventStreamHeaderMiddleware.ts b/packages/middleware-eventstream/src/eventStreamHeaderMiddleware.ts
index 6e52508d839d..77cb7dfeafed 100644
--- a/packages/middleware-eventstream/src/eventStreamHeaderMiddleware.ts
+++ b/packages/middleware-eventstream/src/eventStreamHeaderMiddleware.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerOptions, BuildMiddleware } from "@smithy/types";
+import type { BuildHandlerOptions, BuildMiddleware } from "@smithy/types";
 export const eventStreamHeaderMiddleware: BuildMiddleware<any, any> = (next) => async (args) => {
   const { request } = args;
   if (!HttpRequest.isInstance(request)) return next(args);
diff --git a/packages/middleware-eventstream/src/getEventStreamPlugin.ts b/packages/middleware-eventstream/src/getEventStreamPlugin.ts
index b5fd900df1ea..1b85979a49b5 100644
--- a/packages/middleware-eventstream/src/getEventStreamPlugin.ts
+++ b/packages/middleware-eventstream/src/getEventStreamPlugin.ts
@@ -1,6 +1,6 @@
-import { Pluggable } from "@smithy/types";
+import type { Pluggable } from "@smithy/types";
 
-import { EventStreamResolvedConfig } from "./eventStreamConfiguration";
+import type { EventStreamResolvedConfig } from "./eventStreamConfiguration";
 import { eventStreamHandlingMiddleware, eventStreamHandlingMiddlewareOptions } from "./eventStreamHandlingMiddleware";
 import { eventStreamHeaderMiddleware, eventStreamHeaderMiddlewareOptions } from "./eventStreamHeaderMiddleware";
 
diff --git a/packages/middleware-expect-continue/src/index.ts b/packages/middleware-expect-continue/src/index.ts
index 33c930cf4dbf..8005c80564ff 100644
--- a/packages/middleware-expect-continue/src/index.ts
+++ b/packages/middleware-expect-continue/src/index.ts
@@ -1,5 +1,6 @@
-import { HttpHandler, HttpRequest } from "@smithy/protocol-http";
-import {
+import type { HttpHandler } from "@smithy/protocol-http";
+import { HttpRequest } from "@smithy/protocol-http";
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
diff --git a/packages/middleware-flexible-checksums/src/configuration.ts b/packages/middleware-flexible-checksums/src/configuration.ts
index e92871b491b5..018d73e79436 100644
--- a/packages/middleware-flexible-checksums/src/configuration.ts
+++ b/packages/middleware-flexible-checksums/src/configuration.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   BodyLengthCalculator,
   ChecksumConstructor,
   Encoder,
diff --git a/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.spec.ts b/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.spec.ts
index 995ae1db5480..bc86b2b332ce 100644
--- a/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.spec.ts
+++ b/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.spec.ts
@@ -1,7 +1,7 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerArguments } from "@smithy/types";
+import type { BuildHandlerArguments } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
+import type { PreviouslyResolved } from "./configuration";
 import { ChecksumAlgorithm } from "./constants";
 import { flexibleChecksumsMiddleware } from "./flexibleChecksumsMiddleware";
 import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest";
diff --git a/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.ts b/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.ts
index 5f426f35050c..49622b726e3a 100644
--- a/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.ts
+++ b/packages/middleware-flexible-checksums/src/flexibleChecksumsMiddleware.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
@@ -9,7 +9,7 @@ import {
   MetadataBearer,
 } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
+import type { PreviouslyResolved } from "./configuration";
 import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest";
 import { getChecksumLocationName } from "./getChecksumLocationName";
 import { hasHeader } from "./hasHeader";
diff --git a/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.spec.ts b/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.spec.ts
index 5dc42ae84836..af0537729c76 100644
--- a/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.spec.ts
+++ b/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.spec.ts
@@ -1,11 +1,11 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { DeserializeHandlerArguments } from "@smithy/types";
+import type { DeserializeHandlerArguments } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
+import type { PreviouslyResolved } from "./configuration";
 import { ChecksumAlgorithm } from "./constants";
 import { flexibleChecksumsResponseMiddleware } from "./flexibleChecksumsResponseMiddleware";
 import { getChecksumLocationName } from "./getChecksumLocationName";
-import { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin";
+import type { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin";
 import { isChecksumWithPartNumber } from "./isChecksumWithPartNumber";
 import { isStreaming } from "./isStreaming";
 import { validateChecksumFromResponse } from "./validateChecksumFromResponse";
diff --git a/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.ts b/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.ts
index 27735dc5b169..e5d9227ed68c 100644
--- a/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.ts
+++ b/packages/middleware-flexible-checksums/src/flexibleChecksumsResponseMiddleware.ts
@@ -1,5 +1,6 @@
-import { HttpRequest, HttpResponse } from "@smithy/protocol-http";
-import {
+import type { HttpResponse } from "@smithy/protocol-http";
+import { HttpRequest } from "@smithy/protocol-http";
+import type {
   DeserializeHandler,
   DeserializeHandlerArguments,
   DeserializeHandlerOutput,
@@ -9,8 +10,8 @@ import {
   RelativeMiddlewareOptions,
 } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
-import { ChecksumAlgorithm } from "./constants";
+import type { PreviouslyResolved } from "./configuration";
+import type { ChecksumAlgorithm } from "./constants";
 import { getChecksumAlgorithmListForResponse } from "./getChecksumAlgorithmListForResponse";
 import { getChecksumLocationName } from "./getChecksumLocationName";
 import { isChecksumWithPartNumber } from "./isChecksumWithPartNumber";
diff --git a/packages/middleware-flexible-checksums/src/getChecksum.ts b/packages/middleware-flexible-checksums/src/getChecksum.ts
index 4452fe466397..a48a74c95bfa 100644
--- a/packages/middleware-flexible-checksums/src/getChecksum.ts
+++ b/packages/middleware-flexible-checksums/src/getChecksum.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor, Encoder, HashConstructor, StreamHasher } from "@smithy/types";
+import type { ChecksumConstructor, Encoder, HashConstructor, StreamHasher } from "@smithy/types";
 
 import { isStreaming } from "./isStreaming";
 import { stringHasher } from "./stringHasher";
diff --git a/packages/middleware-flexible-checksums/src/getChecksumAlgorithmForRequest.ts b/packages/middleware-flexible-checksums/src/getChecksumAlgorithmForRequest.ts
index f3cba4b2313f..4733895146a1 100644
--- a/packages/middleware-flexible-checksums/src/getChecksumAlgorithmForRequest.ts
+++ b/packages/middleware-flexible-checksums/src/getChecksumAlgorithmForRequest.ts
@@ -1,4 +1,5 @@
-import { ChecksumAlgorithm, DEFAULT_CHECKSUM_ALGORITHM, S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM } from "./constants";
+import type { ChecksumAlgorithm } from "./constants";
+import { DEFAULT_CHECKSUM_ALGORITHM, S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM } from "./constants";
 import { CLIENT_SUPPORTED_ALGORITHMS } from "./types";
 
 export interface GetChecksumAlgorithmForRequestOptions {
diff --git a/packages/middleware-flexible-checksums/src/getChecksumAlgorithmListForResponse.ts b/packages/middleware-flexible-checksums/src/getChecksumAlgorithmListForResponse.ts
index 6674a7ec2d44..f935584bc3bc 100644
--- a/packages/middleware-flexible-checksums/src/getChecksumAlgorithmListForResponse.ts
+++ b/packages/middleware-flexible-checksums/src/getChecksumAlgorithmListForResponse.ts
@@ -1,4 +1,4 @@
-import { ChecksumAlgorithm } from "./constants";
+import type { ChecksumAlgorithm } from "./constants";
 import { CLIENT_SUPPORTED_ALGORITHMS, PRIORITY_ORDER_ALGORITHMS } from "./types";
 
 /**
diff --git a/packages/middleware-flexible-checksums/src/getFlexibleChecksumsPlugin.ts b/packages/middleware-flexible-checksums/src/getFlexibleChecksumsPlugin.ts
index 94dd3ecea9b0..4e272d233c95 100644
--- a/packages/middleware-flexible-checksums/src/getFlexibleChecksumsPlugin.ts
+++ b/packages/middleware-flexible-checksums/src/getFlexibleChecksumsPlugin.ts
@@ -1,14 +1,11 @@
-import { Pluggable } from "@smithy/types";
+import type { Pluggable } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
-import {
-  flexibleChecksumsMiddleware,
-  flexibleChecksumsMiddlewareOptions,
-  FlexibleChecksumsRequestMiddlewareConfig,
-} from "./flexibleChecksumsMiddleware";
+import type { PreviouslyResolved } from "./configuration";
+import type { FlexibleChecksumsRequestMiddlewareConfig } from "./flexibleChecksumsMiddleware";
+import { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions } from "./flexibleChecksumsMiddleware";
+import type { FlexibleChecksumsResponseMiddlewareConfig } from "./flexibleChecksumsResponseMiddleware";
 import {
   flexibleChecksumsResponseMiddleware,
-  FlexibleChecksumsResponseMiddlewareConfig,
   flexibleChecksumsResponseMiddlewareOptions,
 } from "./flexibleChecksumsResponseMiddleware";
 
diff --git a/packages/middleware-flexible-checksums/src/hasHeader.spec.ts b/packages/middleware-flexible-checksums/src/hasHeader.spec.ts
index ccd0aade5bad..a340e6bd9764 100644
--- a/packages/middleware-flexible-checksums/src/hasHeader.spec.ts
+++ b/packages/middleware-flexible-checksums/src/hasHeader.spec.ts
@@ -1,4 +1,4 @@
-import { HeaderBag } from "@smithy/types";
+import type { HeaderBag } from "@smithy/types";
 
 import { hasHeader } from "./hasHeader";
 
diff --git a/packages/middleware-flexible-checksums/src/hasHeader.ts b/packages/middleware-flexible-checksums/src/hasHeader.ts
index ea8503972ece..02edb9ce7619 100644
--- a/packages/middleware-flexible-checksums/src/hasHeader.ts
+++ b/packages/middleware-flexible-checksums/src/hasHeader.ts
@@ -1,4 +1,4 @@
-import { HeaderBag } from "@smithy/types";
+import type { HeaderBag } from "@smithy/types";
 
 /**
  * Returns true if header is present in headers.
diff --git a/packages/middleware-flexible-checksums/src/selectChecksumAlgorithmFunction.ts b/packages/middleware-flexible-checksums/src/selectChecksumAlgorithmFunction.ts
index 39e0f192245a..dcf42737e474 100644
--- a/packages/middleware-flexible-checksums/src/selectChecksumAlgorithmFunction.ts
+++ b/packages/middleware-flexible-checksums/src/selectChecksumAlgorithmFunction.ts
@@ -1,8 +1,8 @@
 import { AwsCrc32 } from "@aws-crypto/crc32";
 import { AwsCrc32c } from "@aws-crypto/crc32c";
-import { ChecksumConstructor, HashConstructor } from "@smithy/types";
+import type { ChecksumConstructor, HashConstructor } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configuration";
+import type { PreviouslyResolved } from "./configuration";
 import { ChecksumAlgorithm } from "./constants";
 
 /**
diff --git a/packages/middleware-flexible-checksums/src/streams/create-read-stream-on-buffer.ts b/packages/middleware-flexible-checksums/src/streams/create-read-stream-on-buffer.ts
index cec8dedf1b27..8dbb51c8956a 100644
--- a/packages/middleware-flexible-checksums/src/streams/create-read-stream-on-buffer.ts
+++ b/packages/middleware-flexible-checksums/src/streams/create-read-stream-on-buffer.ts
@@ -1,4 +1,5 @@
-import { Readable, Transform } from "stream";
+import type { Readable } from "stream";
+import { Transform } from "stream";
 
 /**
  * Convert a buffer to a readable stream.
diff --git a/packages/middleware-flexible-checksums/src/stringHasher.ts b/packages/middleware-flexible-checksums/src/stringHasher.ts
index dbaa471037fe..09379313e35f 100644
--- a/packages/middleware-flexible-checksums/src/stringHasher.ts
+++ b/packages/middleware-flexible-checksums/src/stringHasher.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor, HashConstructor } from "@smithy/types";
+import type { ChecksumConstructor, HashConstructor } from "@smithy/types";
 import { toUint8Array } from "@smithy/util-utf8";
 
 /**
diff --git a/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.spec.ts b/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.spec.ts
index 4a74aae269ca..35ebc0a48818 100644
--- a/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.spec.ts
+++ b/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.spec.ts
@@ -1,6 +1,6 @@
-import { HttpResponse } from "@smithy/protocol-http";
+import type { HttpResponse } from "@smithy/protocol-http";
 
-import { PreviouslyResolved } from "./configuration";
+import type { PreviouslyResolved } from "./configuration";
 import { ChecksumAlgorithm } from "./constants";
 import { getChecksum } from "./getChecksum";
 import { getChecksumAlgorithmListForResponse } from "./getChecksumAlgorithmListForResponse";
diff --git a/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.ts b/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.ts
index a25028fb2ec7..f35ef0e8cc13 100644
--- a/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.ts
+++ b/packages/middleware-flexible-checksums/src/validateChecksumFromResponse.ts
@@ -1,7 +1,7 @@
-import { HttpResponse } from "@smithy/protocol-http";
+import type { HttpResponse } from "@smithy/protocol-http";
 
-import { PreviouslyResolved } from "./configuration";
-import { ChecksumAlgorithm } from "./constants";
+import type { PreviouslyResolved } from "./configuration";
+import type { ChecksumAlgorithm } from "./constants";
 import { getChecksum } from "./getChecksum";
 import { getChecksumAlgorithmListForResponse } from "./getChecksumAlgorithmListForResponse";
 import { getChecksumLocationName } from "./getChecksumLocationName";
diff --git a/packages/middleware-host-header/src/index.ts b/packages/middleware-host-header/src/index.ts
index 7ac77d366ea7..0b9c9078bcb4 100644
--- a/packages/middleware-host-header/src/index.ts
+++ b/packages/middleware-host-header/src/index.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { AbsoluteLocation, BuildHandlerOptions, BuildMiddleware, Pluggable, RequestHandler } from "@smithy/types";
+import type { AbsoluteLocation, BuildHandlerOptions, BuildMiddleware, Pluggable, RequestHandler } from "@smithy/types";
 
 /**
  * @public
diff --git a/packages/middleware-location-constraint/src/configuration.ts b/packages/middleware-location-constraint/src/configuration.ts
index 88fe114eb04e..93058472def8 100644
--- a/packages/middleware-location-constraint/src/configuration.ts
+++ b/packages/middleware-location-constraint/src/configuration.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 
 /**
  * @public
diff --git a/packages/middleware-location-constraint/src/index.ts b/packages/middleware-location-constraint/src/index.ts
index b3608b13b214..a4c1567d2cc0 100644
--- a/packages/middleware-location-constraint/src/index.ts
+++ b/packages/middleware-location-constraint/src/index.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
@@ -8,7 +8,7 @@ import {
   Pluggable,
 } from "@smithy/types";
 
-import { LocationConstraintResolvedConfig } from "./configuration";
+import type { LocationConstraintResolvedConfig } from "./configuration";
 
 /**
  * This middleware modifies the input on S3 CreateBucket requests.  If the LocationConstraint has not been set, this
diff --git a/packages/middleware-logger/src/loggerMiddleware.spec.ts b/packages/middleware-logger/src/loggerMiddleware.spec.ts
index 4ec3f88cc60f..a0edb32bd730 100644
--- a/packages/middleware-logger/src/loggerMiddleware.spec.ts
+++ b/packages/middleware-logger/src/loggerMiddleware.spec.ts
@@ -1,4 +1,4 @@
-import { HandlerExecutionContext, Logger, MiddlewareStack } from "@smithy/types";
+import type { HandlerExecutionContext, Logger, MiddlewareStack } from "@smithy/types";
 
 import { getLoggerPlugin, loggerMiddleware, loggerMiddlewareOptions } from "./loggerMiddleware";
 
diff --git a/packages/middleware-logger/src/loggerMiddleware.ts b/packages/middleware-logger/src/loggerMiddleware.ts
index ac547d64dcf1..7d249f815169 100644
--- a/packages/middleware-logger/src/loggerMiddleware.ts
+++ b/packages/middleware-logger/src/loggerMiddleware.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   AbsoluteLocation,
   HandlerExecutionContext,
   InitializeHandler,
diff --git a/packages/middleware-recursion-detection/src/index.ts b/packages/middleware-recursion-detection/src/index.ts
index 42fb46ecfdc9..d1896103368f 100644
--- a/packages/middleware-recursion-detection/src/index.ts
+++ b/packages/middleware-recursion-detection/src/index.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   AbsoluteLocation,
   BuildHandler,
   BuildHandlerArguments,
diff --git a/packages/middleware-sdk-api-gateway/src/index.ts b/packages/middleware-sdk-api-gateway/src/index.ts
index 21ba79037a9f..4bfa717578b8 100644
--- a/packages/middleware-sdk-api-gateway/src/index.ts
+++ b/packages/middleware-sdk-api-gateway/src/index.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
diff --git a/packages/middleware-sdk-ec2/src/fixture.ts b/packages/middleware-sdk-ec2/src/fixture.ts
index 565eda165a61..beea639a8a2c 100644
--- a/packages/middleware-sdk-ec2/src/fixture.ts
+++ b/packages/middleware-sdk-ec2/src/fixture.ts
@@ -1,4 +1,4 @@
-import { SourceData } from "@smithy/types";
+import type { SourceData } from "@smithy/types";
 
 export class MockSha256 {
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
diff --git a/packages/middleware-sdk-ec2/src/index.spec.ts b/packages/middleware-sdk-ec2/src/index.spec.ts
index ac93307ddb72..9b803e5fb56c 100755
--- a/packages/middleware-sdk-ec2/src/index.spec.ts
+++ b/packages/middleware-sdk-ec2/src/index.spec.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { EndpointV2 } from "@smithy/types";
+import type { EndpointV2 } from "@smithy/types";
 
 import { credentials, MockSha256, region } from "./fixture";
 import { copySnapshotPresignedUrlMiddleware } from "./index";
diff --git a/packages/middleware-sdk-ec2/src/index.ts b/packages/middleware-sdk-ec2/src/index.ts
index bbb861974daa..f7e8450fa479 100755
--- a/packages/middleware-sdk-ec2/src/index.ts
+++ b/packages/middleware-sdk-ec2/src/index.ts
@@ -3,7 +3,7 @@ import { getEndpointFromInstructions, toEndpointV1 } from "@smithy/middleware-en
 import { HttpRequest } from "@smithy/protocol-http";
 import { SignatureV4 } from "@smithy/signature-v4";
 import { extendedEncodeURIComponent } from "@smithy/smithy-client";
-import {
+import type {
   AwsCredentialIdentity,
   ChecksumConstructor,
   Endpoint,
diff --git a/packages/middleware-sdk-glacier/src/account-id-default.ts b/packages/middleware-sdk-glacier/src/account-id-default.ts
index 4cb33df58f93..643fec47eb8f 100644
--- a/packages/middleware-sdk-glacier/src/account-id-default.ts
+++ b/packages/middleware-sdk-glacier/src/account-id-default.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
diff --git a/packages/middleware-sdk-glacier/src/add-checksum-headers.ts b/packages/middleware-sdk-glacier/src/add-checksum-headers.ts
index f82fbfac5d6b..925613f6ddf1 100644
--- a/packages/middleware-sdk-glacier/src/add-checksum-headers.ts
+++ b/packages/middleware-sdk-glacier/src/add-checksum-headers.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
@@ -8,7 +8,7 @@ import {
   MetadataBearer,
 } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configurations";
+import type { PreviouslyResolved } from "./configurations";
 
 export function addChecksumHeadersMiddleware(options: PreviouslyResolved): BuildMiddleware<any, any> {
   return <Output extends MetadataBearer>(next: BuildHandler<any, Output>): BuildHandler<any, Output> =>
diff --git a/packages/middleware-sdk-glacier/src/add-glacier-api-version.ts b/packages/middleware-sdk-glacier/src/add-glacier-api-version.ts
index 3e4e0712d912..35cffacec459 100644
--- a/packages/middleware-sdk-glacier/src/add-glacier-api-version.ts
+++ b/packages/middleware-sdk-glacier/src/add-glacier-api-version.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
@@ -8,7 +8,7 @@ import {
   MetadataBearer,
 } from "@smithy/types";
 
-import { PreviouslyResolved } from "./configurations";
+import type { PreviouslyResolved } from "./configurations";
 
 export function addGlacierApiVersionMiddleware(options: PreviouslyResolved): BuildMiddleware<any, any> {
   return <Output extends MetadataBearer>(next: BuildHandler<any, Output>): BuildHandler<any, Output> =>
diff --git a/packages/middleware-sdk-glacier/src/configurations.ts b/packages/middleware-sdk-glacier/src/configurations.ts
index 2b829223524b..7a9fd9508c9e 100644
--- a/packages/middleware-sdk-glacier/src/configurations.ts
+++ b/packages/middleware-sdk-glacier/src/configurations.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor, Decoder, HashConstructor, HttpRequest, Pluggable } from "@smithy/types";
+import type { ChecksumConstructor, Decoder, HashConstructor, HttpRequest, Pluggable } from "@smithy/types";
 
 import { accountIdDefaultMiddleware, accountIdDefaultMiddlewareOptions } from "./account-id-default";
 import { addChecksumHeadersMiddleware, addChecksumHeadersMiddlewareOptions } from "./add-checksum-headers";
diff --git a/packages/middleware-sdk-machinelearning/src/predict-endpoint.ts b/packages/middleware-sdk-machinelearning/src/predict-endpoint.ts
index 49f405904bbe..e3c61bdf494d 100644
--- a/packages/middleware-sdk-machinelearning/src/predict-endpoint.ts
+++ b/packages/middleware-sdk-machinelearning/src/predict-endpoint.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
diff --git a/packages/middleware-sdk-rds/src/fixture.ts b/packages/middleware-sdk-rds/src/fixture.ts
index b9c171a26292..206ca8c844e8 100644
--- a/packages/middleware-sdk-rds/src/fixture.ts
+++ b/packages/middleware-sdk-rds/src/fixture.ts
@@ -1,4 +1,4 @@
-import { SourceData } from "@smithy/types";
+import type { SourceData } from "@smithy/types";
 
 export class MockSha256 {
   // eslint-disable-next-line @typescript-eslint/no-unused-vars
diff --git a/packages/middleware-sdk-rds/src/index.ts b/packages/middleware-sdk-rds/src/index.ts
index cd7968f2fc3b..5993adfea3c6 100644
--- a/packages/middleware-sdk-rds/src/index.ts
+++ b/packages/middleware-sdk-rds/src/index.ts
@@ -2,7 +2,7 @@ import { formatUrl } from "@aws-sdk/util-format-url";
 import { toEndpointV1 } from "@smithy/middleware-endpoint";
 import { HttpRequest } from "@smithy/protocol-http";
 import { SignatureV4 } from "@smithy/signature-v4";
-import {
+import type {
   AwsCredentialIdentity,
   ChecksumConstructor,
   Endpoint,
diff --git a/packages/middleware-sdk-route53/src/change-resource-record-sets.ts b/packages/middleware-sdk-route53/src/change-resource-record-sets.ts
index 78f4c85fab62..8471c88aa48a 100644
--- a/packages/middleware-sdk-route53/src/change-resource-record-sets.ts
+++ b/packages/middleware-sdk-route53/src/change-resource-record-sets.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
diff --git a/packages/middleware-sdk-route53/src/id-normalizer.ts b/packages/middleware-sdk-route53/src/id-normalizer.ts
index 5cb7f1013d75..229e43fd33a0 100644
--- a/packages/middleware-sdk-route53/src/id-normalizer.ts
+++ b/packages/middleware-sdk-route53/src/id-normalizer.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
diff --git a/packages/middleware-sdk-s3-control/src/configurations.ts b/packages/middleware-sdk-s3-control/src/configurations.ts
index a7d34107d222..f1fef930cd97 100644
--- a/packages/middleware-sdk-s3-control/src/configurations.ts
+++ b/packages/middleware-sdk-s3-control/src/configurations.ts
@@ -1,4 +1,4 @@
-import { Provider, RegionInfoProvider } from "@smithy/types";
+import type { Provider, RegionInfoProvider } from "@smithy/types";
 export { NODE_USE_ARN_REGION_CONFIG_OPTIONS } from "@aws-sdk/middleware-bucket-endpoint";
 
 /**
diff --git a/packages/middleware-sdk-s3-control/src/host-prefix-deduplication/hostPrefixDeduplicationMiddleware.ts b/packages/middleware-sdk-s3-control/src/host-prefix-deduplication/hostPrefixDeduplicationMiddleware.ts
index 55ac3ea1c8b8..89db2a4ed9bf 100644
--- a/packages/middleware-sdk-s3-control/src/host-prefix-deduplication/hostPrefixDeduplicationMiddleware.ts
+++ b/packages/middleware-sdk-s3-control/src/host-prefix-deduplication/hostPrefixDeduplicationMiddleware.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   HandlerExecutionContext,
   HttpRequest,
   Pluggable,
diff --git a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.spec.ts b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.spec.ts
index 2de3a578dd41..06d641b55c6c 100644
--- a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.spec.ts
+++ b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.spec.ts
@@ -1,8 +1,8 @@
 import { constructStack } from "@smithy/middleware-stack";
 import { HttpRequest } from "@smithy/protocol-http";
-import { Provider, RegionInfo } from "@smithy/types";
+import type { Provider, RegionInfo } from "@smithy/types";
 
-import { S3ControlResolvedConfig } from "../configurations";
+import type { S3ControlResolvedConfig } from "../configurations";
 import { getProcessArnablesPlugin } from "./getProcessArnablesPlugin";
 
 describe("getProcessArnablesMiddleware", () => {
diff --git a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.ts b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.ts
index 6c129d6b9aef..089fc9c619bc 100644
--- a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.ts
+++ b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/getProcessArnablesPlugin.ts
@@ -1,6 +1,6 @@
-import { Pluggable } from "@smithy/types";
+import type { Pluggable } from "@smithy/types";
 
-import { S3ControlResolvedConfig } from "../configurations";
+import type { S3ControlResolvedConfig } from "../configurations";
 import { parseOutpostArnablesMiddleaware, parseOutpostArnablesMiddleawareOptions } from "./parse-outpost-arnables";
 import { updateArnablesRequestMiddleware, updateArnablesRequestMiddlewareOptions } from "./update-arnables-request";
 
diff --git a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/parse-outpost-arnables.ts b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/parse-outpost-arnables.ts
index 108e30e9dfd2..7d59bcefdb5e 100644
--- a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/parse-outpost-arnables.ts
+++ b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/parse-outpost-arnables.ts
@@ -6,11 +6,12 @@ import {
   validatePartition,
   validateRegion,
 } from "@aws-sdk/middleware-bucket-endpoint";
-import { ARN, parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
+import type { ARN } from "@aws-sdk/util-arn-parser";
+import { parse as parseArn, validate as validateArn } from "@aws-sdk/util-arn-parser";
 import { partition } from "@aws-sdk/util-endpoints";
-import { InitializeHandlerOptions, InitializeMiddleware } from "@smithy/types";
+import type { InitializeHandlerOptions, InitializeMiddleware } from "@smithy/types";
 
-import { S3ControlResolvedConfig } from "../configurations";
+import type { S3ControlResolvedConfig } from "../configurations";
 import { CONTEXT_ARN_REGION, CONTEXT_OUTPOST_ID, CONTEXT_SIGNING_REGION, CONTEXT_SIGNING_SERVICE } from "../constants";
 
 type ArnableInput = {
diff --git a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/update-arnables-request.ts b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/update-arnables-request.ts
index 5160cd975ca9..f68fd6050e66 100644
--- a/packages/middleware-sdk-s3-control/src/process-arnables-plugin/update-arnables-request.ts
+++ b/packages/middleware-sdk-s3-control/src/process-arnables-plugin/update-arnables-request.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerOptions, BuildMiddleware, Provider } from "@smithy/types";
+import type { BuildHandlerOptions, BuildMiddleware, Provider } from "@smithy/types";
 
 import { CONTEXT_ACCOUNT_ID, CONTEXT_ARN_REGION, CONTEXT_OUTPOST_ID } from "../constants";
 import { getOutpostEndpoint } from "./getOutpostEndpoint";
diff --git a/packages/middleware-sdk-s3-control/src/redirect-from-postid.ts b/packages/middleware-sdk-s3-control/src/redirect-from-postid.ts
index b652669a0393..4f0b06a0b3ac 100644
--- a/packages/middleware-sdk-s3-control/src/redirect-from-postid.ts
+++ b/packages/middleware-sdk-s3-control/src/redirect-from-postid.ts
@@ -1,7 +1,7 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerOptions, BuildMiddleware, Pluggable, Provider } from "@smithy/types";
+import type { BuildHandlerOptions, BuildMiddleware, Pluggable, Provider } from "@smithy/types";
 
-import { S3ControlResolvedConfig } from "./configurations";
+import type { S3ControlResolvedConfig } from "./configurations";
 import { CONTEXT_SIGNING_SERVICE } from "./constants";
 import { getOutpostEndpoint } from "./process-arnables-plugin";
 
diff --git a/packages/middleware-sdk-s3/src/bucket-endpoint-middleware.ts b/packages/middleware-sdk-s3/src/bucket-endpoint-middleware.ts
index 58d19d0eec30..73501eed8e43 100644
--- a/packages/middleware-sdk-s3/src/bucket-endpoint-middleware.ts
+++ b/packages/middleware-sdk-s3/src/bucket-endpoint-middleware.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   HandlerExecutionContext,
   MetadataBearer,
   RelativeMiddlewareOptions,
diff --git a/packages/middleware-sdk-s3/src/check-content-length-header.ts b/packages/middleware-sdk-s3/src/check-content-length-header.ts
index ca45e78484bd..fff8be0e5130 100644
--- a/packages/middleware-sdk-s3/src/check-content-length-header.ts
+++ b/packages/middleware-sdk-s3/src/check-content-length-header.ts
@@ -1,6 +1,6 @@
 import { HttpRequest } from "@smithy/protocol-http";
 import { NoOpLogger } from "@smithy/smithy-client";
-import {
+import type {
   FinalizeHandler,
   FinalizeHandlerArguments,
   FinalizeHandlerOutput,
diff --git a/packages/middleware-sdk-s3/src/region-redirect-endpoint-middleware.ts b/packages/middleware-sdk-s3/src/region-redirect-endpoint-middleware.ts
index ece8a964ace1..1c326078855c 100644
--- a/packages/middleware-sdk-s3/src/region-redirect-endpoint-middleware.ts
+++ b/packages/middleware-sdk-s3/src/region-redirect-endpoint-middleware.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   HandlerExecutionContext,
   MetadataBearer,
   RelativeMiddlewareOptions,
@@ -8,7 +8,7 @@ import {
   SerializeMiddleware,
 } from "@smithy/types";
 
-import { PreviouslyResolved } from "./region-redirect-middleware";
+import type { PreviouslyResolved } from "./region-redirect-middleware";
 
 /**
  * @internal
diff --git a/packages/middleware-sdk-s3/src/region-redirect-middleware.e2e.spec.ts b/packages/middleware-sdk-s3/src/region-redirect-middleware.e2e.spec.ts
index c7267bb4f878..2df967a1cbe0 100644
--- a/packages/middleware-sdk-s3/src/region-redirect-middleware.e2e.spec.ts
+++ b/packages/middleware-sdk-s3/src/region-redirect-middleware.e2e.spec.ts
@@ -1,5 +1,6 @@
 import { S3 } from "@aws-sdk/client-s3";
-import { GetCallerIdentityCommandOutput, STS } from "@aws-sdk/client-sts";
+import type { GetCallerIdentityCommandOutput } from "@aws-sdk/client-sts";
+import { STS } from "@aws-sdk/client-sts";
 
 jest.setTimeout(100000);
 
diff --git a/packages/middleware-sdk-s3/src/region-redirect-middleware.spec.ts b/packages/middleware-sdk-s3/src/region-redirect-middleware.spec.ts
index b159333623ca..484f8e6ad9d6 100644
--- a/packages/middleware-sdk-s3/src/region-redirect-middleware.spec.ts
+++ b/packages/middleware-sdk-s3/src/region-redirect-middleware.spec.ts
@@ -1,4 +1,4 @@
-import { HandlerExecutionContext } from "@smithy/types";
+import type { HandlerExecutionContext } from "@smithy/types";
 
 import { regionRedirectMiddleware } from "./region-redirect-middleware";
 
diff --git a/packages/middleware-sdk-s3/src/region-redirect-middleware.ts b/packages/middleware-sdk-s3/src/region-redirect-middleware.ts
index 4ae0599e5e07..c22f55fbeac6 100644
--- a/packages/middleware-sdk-s3/src/region-redirect-middleware.ts
+++ b/packages/middleware-sdk-s3/src/region-redirect-middleware.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   HandlerExecutionContext,
   InitializeHandler,
   InitializeHandlerArguments,
diff --git a/packages/middleware-sdk-s3/src/s3-expires-middleware.e2e.spec.ts b/packages/middleware-sdk-s3/src/s3-expires-middleware.e2e.spec.ts
index 6b7ca0f78e8b..42b50b792f62 100644
--- a/packages/middleware-sdk-s3/src/s3-expires-middleware.e2e.spec.ts
+++ b/packages/middleware-sdk-s3/src/s3-expires-middleware.e2e.spec.ts
@@ -1,5 +1,6 @@
 import { S3 } from "@aws-sdk/client-s3";
-import { GetCallerIdentityCommandOutput, STS } from "@aws-sdk/client-sts";
+import type { GetCallerIdentityCommandOutput } from "@aws-sdk/client-sts";
+import { STS } from "@aws-sdk/client-sts";
 
 jest.setTimeout(25000);
 
diff --git a/packages/middleware-sdk-s3/src/s3-expires-middleware.ts b/packages/middleware-sdk-s3/src/s3-expires-middleware.ts
index 17853a3350c0..4cbae9087c71 100644
--- a/packages/middleware-sdk-s3/src/s3-expires-middleware.ts
+++ b/packages/middleware-sdk-s3/src/s3-expires-middleware.ts
@@ -1,6 +1,6 @@
 import { HttpResponse } from "@smithy/protocol-http";
 import { parseRfc7231DateTime } from "@smithy/smithy-client";
-import {
+import type {
   DeserializeHandler,
   DeserializeHandlerArguments,
   DeserializeHandlerOutput,
diff --git a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCache.ts b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCache.ts
index a6c0d3615ca0..86dece52b2be 100644
--- a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCache.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCache.ts
@@ -1,4 +1,4 @@
-import { S3ExpressIdentityCacheEntry } from "./S3ExpressIdentityCacheEntry";
+import type { S3ExpressIdentityCacheEntry } from "./S3ExpressIdentityCacheEntry";
 
 /**
  * @internal
diff --git a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCacheEntry.ts b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCacheEntry.ts
index 51e99a44b3e2..41cdb4f23942 100644
--- a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCacheEntry.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityCacheEntry.ts
@@ -1,4 +1,4 @@
-import { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
+import type { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
 
 /**
  * @internal
diff --git a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityProviderImpl.ts b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityProviderImpl.ts
index f01ac386e9fd..023475740d36 100644
--- a/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityProviderImpl.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/classes/S3ExpressIdentityProviderImpl.ts
@@ -1,7 +1,7 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 
-import { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
-import { S3ExpressIdentityProvider } from "../interfaces/S3ExpressIdentityProvider";
+import type { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
+import type { S3ExpressIdentityProvider } from "../interfaces/S3ExpressIdentityProvider";
 import { S3ExpressIdentityCache } from "./S3ExpressIdentityCache";
 import { S3ExpressIdentityCacheEntry } from "./S3ExpressIdentityCacheEntry";
 
diff --git a/packages/middleware-sdk-s3/src/s3-express/classes/SignatureV4S3Express.ts b/packages/middleware-sdk-s3/src/s3-express/classes/SignatureV4S3Express.ts
index 3d5e5c95333c..a3933369f136 100644
--- a/packages/middleware-sdk-s3/src/s3-express/classes/SignatureV4S3Express.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/classes/SignatureV4S3Express.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 import { SignatureV4 } from "@smithy/signature-v4";
-import {
+import type {
   HttpRequest as IHttpRequest,
   Provider,
   RequestPresigningArguments,
diff --git a/packages/middleware-sdk-s3/src/s3-express/functions/s3ExpressMiddleware.ts b/packages/middleware-sdk-s3/src/s3-express/functions/s3ExpressMiddleware.ts
index 57fa6e1b9d25..1456ebd0cfaf 100644
--- a/packages/middleware-sdk-s3/src/s3-express/functions/s3ExpressMiddleware.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/functions/s3ExpressMiddleware.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildHandlerOptions,
@@ -12,8 +12,8 @@ import {
 } from "@smithy/types";
 
 import { S3_EXPRESS_AUTH_SCHEME, S3_EXPRESS_BACKEND, S3_EXPRESS_BUCKET_TYPE, SESSION_TOKEN_HEADER } from "../constants";
-import { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
-import { S3ExpressIdentityProvider } from "../interfaces/S3ExpressIdentityProvider";
+import type { S3ExpressIdentity } from "../interfaces/S3ExpressIdentity";
+import type { S3ExpressIdentityProvider } from "../interfaces/S3ExpressIdentityProvider";
 
 declare module "@smithy/types" {
   interface HandlerExecutionContext {
diff --git a/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentity.ts b/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentity.ts
index 5dcbdf7afd3e..d3e6e443a7ca 100644
--- a/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentity.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentity.ts
@@ -1,4 +1,4 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 
 /**
  * @public
diff --git a/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentityProvider.ts b/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentityProvider.ts
index 3d43ea655317..4af606bc7100 100644
--- a/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentityProvider.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/interfaces/S3ExpressIdentityProvider.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 
-import { S3ExpressIdentity } from "./S3ExpressIdentity";
+import type { S3ExpressIdentity } from "./S3ExpressIdentity";
 
 /**
  * @public
diff --git a/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.e2e.spec.ts b/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.e2e.spec.ts
index 24fb6032d268..6ed4ac572124 100644
--- a/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.e2e.spec.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.e2e.spec.ts
@@ -1,7 +1,7 @@
 import { GetObjectCommand, PutObjectCommand, S3, waitUntilBucketExists } from "@aws-sdk/client-s3";
 import { STS } from "@aws-sdk/client-sts";
 import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
-import http from "http";
+import type http from "http";
 import https from "https";
 
 const region = "us-east-1";
diff --git a/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.integ.spec.ts b/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.integ.spec.ts
index d99fb1b37f24..83ebc8fbb049 100644
--- a/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.integ.spec.ts
+++ b/packages/middleware-sdk-s3/src/s3-express/middleware-s3-express.integ.spec.ts
@@ -1,8 +1,8 @@
 import { S3 } from "@aws-sdk/client-s3";
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 
 import { requireRequestsFrom } from "../../../../private/aws-util-test/src";
-import { S3ExpressIdentity, S3ExpressIdentityProvider } from "./index";
+import type { S3ExpressIdentity, S3ExpressIdentityProvider } from "./index";
 
 describe("middleware-s3-express", () => {
   const s3ExpressIdentityProvider: S3ExpressIdentityProvider = {
diff --git a/packages/middleware-sdk-s3/src/s3Configuration.ts b/packages/middleware-sdk-s3/src/s3Configuration.ts
index 4072a01dcaa4..f81c68b5902a 100644
--- a/packages/middleware-sdk-s3/src/s3Configuration.ts
+++ b/packages/middleware-sdk-s3/src/s3Configuration.ts
@@ -1,6 +1,7 @@
 import type { Client, Command } from "@smithy/types";
 
-import { S3ExpressIdentityProvider, S3ExpressIdentityProviderImpl } from "./s3-express";
+import type { S3ExpressIdentityProvider } from "./s3-express";
+import { S3ExpressIdentityProviderImpl } from "./s3-express";
 
 /**
  * @public
diff --git a/packages/middleware-sdk-s3/src/throw-200-exceptions.ts b/packages/middleware-sdk-s3/src/throw-200-exceptions.ts
index 08b4ca18c8ab..2200dd51760f 100644
--- a/packages/middleware-sdk-s3/src/throw-200-exceptions.ts
+++ b/packages/middleware-sdk-s3/src/throw-200-exceptions.ts
@@ -1,5 +1,11 @@
 import { HttpResponse } from "@smithy/protocol-http";
-import { DeserializeMiddleware, Encoder, Pluggable, RelativeMiddlewareOptions, StreamCollector } from "@smithy/types";
+import type {
+  DeserializeMiddleware,
+  Encoder,
+  Pluggable,
+  RelativeMiddlewareOptions,
+  StreamCollector,
+} from "@smithy/types";
 
 type PreviouslyResolved = {
   streamCollector: StreamCollector;
diff --git a/packages/middleware-sdk-s3/src/validate-bucket-name.ts b/packages/middleware-sdk-s3/src/validate-bucket-name.ts
index 23fd863887c7..61556e96c683 100644
--- a/packages/middleware-sdk-s3/src/validate-bucket-name.ts
+++ b/packages/middleware-sdk-s3/src/validate-bucket-name.ts
@@ -1,5 +1,5 @@
 import { validate as validateArn } from "@aws-sdk/util-arn-parser";
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
@@ -10,7 +10,7 @@ import {
 } from "@smithy/types";
 
 import { bucketEndpointMiddleware, bucketEndpointMiddlewareOptions } from "./bucket-endpoint-middleware";
-import { S3ResolvedConfig } from "./s3Configuration";
+import type { S3ResolvedConfig } from "./s3Configuration";
 
 /**
  * @internal
diff --git a/packages/middleware-sdk-sqs/src/configurations.ts b/packages/middleware-sdk-sqs/src/configurations.ts
index f06e1971c0e0..1420df6f3b64 100644
--- a/packages/middleware-sdk-sqs/src/configurations.ts
+++ b/packages/middleware-sdk-sqs/src/configurations.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor, HashConstructor } from "@smithy/types";
+import type { ChecksumConstructor, HashConstructor } from "@smithy/types";
 
 export interface PreviouslyResolved {
   md5: ChecksumConstructor | HashConstructor | false;
diff --git a/packages/middleware-sdk-sqs/src/middleware-sdk-sqs.integ.spec.ts b/packages/middleware-sdk-sqs/src/middleware-sdk-sqs.integ.spec.ts
index 7a6b7b714894..e488aebc411c 100644
--- a/packages/middleware-sdk-sqs/src/middleware-sdk-sqs.integ.spec.ts
+++ b/packages/middleware-sdk-sqs/src/middleware-sdk-sqs.integ.spec.ts
@@ -1,5 +1,6 @@
 import { SQS } from "@aws-sdk/client-sqs";
-import { HttpHandler, HttpResponse } from "@smithy/protocol-http";
+import type { HttpHandler } from "@smithy/protocol-http";
+import { HttpResponse } from "@smithy/protocol-http";
 import type { AwsCredentialIdentity } from "@smithy/types";
 import crypto from "crypto";
 import { Readable } from "stream";
diff --git a/packages/middleware-sdk-sqs/src/queue-url.spec.ts b/packages/middleware-sdk-sqs/src/queue-url.spec.ts
index 69d8826499a9..644ea8ca5903 100644
--- a/packages/middleware-sdk-sqs/src/queue-url.spec.ts
+++ b/packages/middleware-sdk-sqs/src/queue-url.spec.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@aws-sdk/protocol-http";
-import { FinalizeHandlerArguments, HandlerExecutionContext } from "@aws-sdk/types";
+import type { FinalizeHandlerArguments, HandlerExecutionContext } from "@aws-sdk/types";
 
 import { queueUrlMiddleware } from "./queue-url";
 
diff --git a/packages/middleware-sdk-sqs/src/queue-url.ts b/packages/middleware-sdk-sqs/src/queue-url.ts
index 447437352719..8f4f9b0f4f4d 100644
--- a/packages/middleware-sdk-sqs/src/queue-url.ts
+++ b/packages/middleware-sdk-sqs/src/queue-url.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   Endpoint,
   EndpointV2,
   FinalizeHandlerArguments,
diff --git a/packages/middleware-sdk-sqs/src/receive-message.ts b/packages/middleware-sdk-sqs/src/receive-message.ts
index 3c82c394d1b4..46838b3a7284 100644
--- a/packages/middleware-sdk-sqs/src/receive-message.ts
+++ b/packages/middleware-sdk-sqs/src/receive-message.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
@@ -10,7 +10,7 @@ import {
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 
-import { PreviouslyResolved } from "./configurations";
+import type { PreviouslyResolved } from "./configurations";
 
 interface ReceiveMessageResult {
   Messages: Array<Message>;
diff --git a/packages/middleware-sdk-sqs/src/receive-messages.spec.ts b/packages/middleware-sdk-sqs/src/receive-messages.spec.ts
index 1d185cfaad06..67f90d8f5357 100644
--- a/packages/middleware-sdk-sqs/src/receive-messages.spec.ts
+++ b/packages/middleware-sdk-sqs/src/receive-messages.spec.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor } from "@smithy/types";
+import type { ChecksumConstructor } from "@smithy/types";
 
 import { receiveMessageMiddleware } from "./receive-message";
 
diff --git a/packages/middleware-sdk-sqs/src/send-message-batch.spec.ts b/packages/middleware-sdk-sqs/src/send-message-batch.spec.ts
index 4eff4185e186..2d79814ddd8a 100644
--- a/packages/middleware-sdk-sqs/src/send-message-batch.spec.ts
+++ b/packages/middleware-sdk-sqs/src/send-message-batch.spec.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor } from "@smithy/types";
+import type { ChecksumConstructor } from "@smithy/types";
 
 import { sendMessageBatchMiddleware } from "./send-message-batch";
 
diff --git a/packages/middleware-sdk-sqs/src/send-message-batch.ts b/packages/middleware-sdk-sqs/src/send-message-batch.ts
index 0f18bb9fb906..70689c826710 100644
--- a/packages/middleware-sdk-sqs/src/send-message-batch.ts
+++ b/packages/middleware-sdk-sqs/src/send-message-batch.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
@@ -10,7 +10,7 @@ import {
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 
-import { PreviouslyResolved } from "./configurations";
+import type { PreviouslyResolved } from "./configurations";
 
 interface SendMessageBatchResult {
   Successful: Array<SendMessageBatchResultEntry> | undefined;
diff --git a/packages/middleware-sdk-sqs/src/send-message.spec.ts b/packages/middleware-sdk-sqs/src/send-message.spec.ts
index 2eeea59abacf..b2dd13a513a4 100644
--- a/packages/middleware-sdk-sqs/src/send-message.spec.ts
+++ b/packages/middleware-sdk-sqs/src/send-message.spec.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor } from "@smithy/types";
+import type { ChecksumConstructor } from "@smithy/types";
 
 import { sendMessageMiddleware } from "./send-message";
 
diff --git a/packages/middleware-sdk-sqs/src/send-message.ts b/packages/middleware-sdk-sqs/src/send-message.ts
index 86d6c6e77871..9dc82daacfec 100644
--- a/packages/middleware-sdk-sqs/src/send-message.ts
+++ b/packages/middleware-sdk-sqs/src/send-message.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
@@ -10,7 +10,7 @@ import {
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 
-import { PreviouslyResolved } from "./configurations";
+import type { PreviouslyResolved } from "./configurations";
 
 interface SendMessageResult {
   MD5OfMessageBody?: string;
diff --git a/packages/middleware-sdk-sts/src/index.ts b/packages/middleware-sdk-sts/src/index.ts
index b2c43704182c..c4fb97fa9c7f 100644
--- a/packages/middleware-sdk-sts/src/index.ts
+++ b/packages/middleware-sdk-sts/src/index.ts
@@ -1,5 +1,6 @@
-import { AwsAuthInputConfig, AwsAuthResolvedConfig, resolveAwsAuthConfig } from "@aws-sdk/middleware-signing";
-import {
+import type { AwsAuthInputConfig, AwsAuthResolvedConfig } from "@aws-sdk/middleware-signing";
+import { resolveAwsAuthConfig } from "@aws-sdk/middleware-signing";
+import type {
   AwsCredentialIdentity,
   ChecksumConstructor,
   Client,
diff --git a/packages/middleware-sdk-transcribe-streaming/src/eventstream-handler.ts b/packages/middleware-sdk-transcribe-streaming/src/eventstream-handler.ts
index 22ca62c3dbf5..82307465a8d0 100644
--- a/packages/middleware-sdk-transcribe-streaming/src/eventstream-handler.ts
+++ b/packages/middleware-sdk-transcribe-streaming/src/eventstream-handler.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   EventStreamPayloadHandler as IEventStreamPayloadHandler,
diff --git a/packages/middleware-sdk-transcribe-streaming/src/getTranscribeStreamingPlugin.ts b/packages/middleware-sdk-transcribe-streaming/src/getTranscribeStreamingPlugin.ts
index 6e5dcff3f06b..4485bc438aff 100644
--- a/packages/middleware-sdk-transcribe-streaming/src/getTranscribeStreamingPlugin.ts
+++ b/packages/middleware-sdk-transcribe-streaming/src/getTranscribeStreamingPlugin.ts
@@ -1,4 +1,4 @@
-import { Pluggable, RequestHandler } from "@smithy/types";
+import type { Pluggable, RequestHandler } from "@smithy/types";
 
 import {
   injectResponseValuesMiddleware,
diff --git a/packages/middleware-sdk-transcribe-streaming/src/middleware-inject-response-values.ts b/packages/middleware-sdk-transcribe-streaming/src/middleware-inject-response-values.ts
index 66fcf580b317..dd1eb4d3651c 100644
--- a/packages/middleware-sdk-transcribe-streaming/src/middleware-inject-response-values.ts
+++ b/packages/middleware-sdk-transcribe-streaming/src/middleware-inject-response-values.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
diff --git a/packages/middleware-sdk-transcribe-streaming/src/middleware-port.spec.ts b/packages/middleware-sdk-transcribe-streaming/src/middleware-port.spec.ts
index 325876ba1f67..c652b7d1d23e 100644
--- a/packages/middleware-sdk-transcribe-streaming/src/middleware-port.spec.ts
+++ b/packages/middleware-sdk-transcribe-streaming/src/middleware-port.spec.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerArguments, RequestHandler } from "@smithy/types";
+import type { BuildHandlerArguments, RequestHandler } from "@smithy/types";
 
 import { websocketPortMiddleware } from "./middleware-port";
 
diff --git a/packages/middleware-sdk-transcribe-streaming/src/middleware-port.ts b/packages/middleware-sdk-transcribe-streaming/src/middleware-port.ts
index 1475e46de8a3..c1e6689280e9 100644
--- a/packages/middleware-sdk-transcribe-streaming/src/middleware-port.ts
+++ b/packages/middleware-sdk-transcribe-streaming/src/middleware-port.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildMiddleware,
diff --git a/packages/middleware-signing/src/awsAuthConfiguration.ts b/packages/middleware-signing/src/awsAuthConfiguration.ts
index 8fc40e140090..ab26def83879 100644
--- a/packages/middleware-signing/src/awsAuthConfiguration.ts
+++ b/packages/middleware-signing/src/awsAuthConfiguration.ts
@@ -1,6 +1,7 @@
 import { memoize } from "@smithy/property-provider";
-import { SignatureV4, SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
-import {
+import type { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
+import { SignatureV4 } from "@smithy/signature-v4";
+import type {
   AuthScheme,
   AwsCredentialIdentity,
   ChecksumConstructor,
diff --git a/packages/middleware-signing/src/awsAuthMiddleware.spec.ts b/packages/middleware-signing/src/awsAuthMiddleware.spec.ts
index 0bb1b18a958f..fccf8ef59e0b 100644
--- a/packages/middleware-signing/src/awsAuthMiddleware.spec.ts
+++ b/packages/middleware-signing/src/awsAuthMiddleware.spec.ts
@@ -1,7 +1,7 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { FinalizeHandler, RequestSigner } from "@smithy/types";
+import type { FinalizeHandler, RequestSigner } from "@smithy/types";
 
-import { AwsAuthResolvedConfig } from "./awsAuthConfiguration";
+import type { AwsAuthResolvedConfig } from "./awsAuthConfiguration";
 import { awsAuthMiddleware } from "./awsAuthMiddleware";
 import { getSkewCorrectedDate } from "./utils/getSkewCorrectedDate";
 import { getUpdatedSystemClockOffset } from "./utils/getUpdatedSystemClockOffset";
diff --git a/packages/middleware-signing/src/awsAuthMiddleware.ts b/packages/middleware-signing/src/awsAuthMiddleware.ts
index b738c3610830..1c15b8073782 100644
--- a/packages/middleware-signing/src/awsAuthMiddleware.ts
+++ b/packages/middleware-signing/src/awsAuthMiddleware.ts
@@ -1,6 +1,6 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 import { HttpRequest, HttpResponse } from "@smithy/protocol-http";
-import {
+import type {
   AuthScheme,
   FinalizeHandler,
   FinalizeHandlerArguments,
@@ -13,7 +13,7 @@ import {
   RequestSigner,
 } from "@smithy/types";
 
-import { AwsAuthResolvedConfig } from "./awsAuthConfiguration";
+import type { AwsAuthResolvedConfig } from "./awsAuthConfiguration";
 import { getSkewCorrectedDate } from "./utils/getSkewCorrectedDate";
 import { getUpdatedSystemClockOffset } from "./utils/getUpdatedSystemClockOffset";
 
diff --git a/packages/middleware-ssec/src/index.spec.ts b/packages/middleware-ssec/src/index.spec.ts
index 9f57558b236b..bc5e14d9ed32 100644
--- a/packages/middleware-ssec/src/index.spec.ts
+++ b/packages/middleware-ssec/src/index.spec.ts
@@ -1,4 +1,4 @@
-import { ChecksumConstructor } from "@smithy/types";
+import type { ChecksumConstructor } from "@smithy/types";
 import * as crypto from "crypto";
 
 import { isValidBase64EncodedSSECustomerKey, ssecMiddleware } from "./";
diff --git a/packages/middleware-ssec/src/index.ts b/packages/middleware-ssec/src/index.ts
index 29466311a738..8d84abac1a19 100644
--- a/packages/middleware-ssec/src/index.ts
+++ b/packages/middleware-ssec/src/index.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   ChecksumConstructor,
   Decoder,
   Encoder,
diff --git a/packages/middleware-token/src/configurations.ts b/packages/middleware-token/src/configurations.ts
index cf2275c5bd4f..a7a1401dad07 100644
--- a/packages/middleware-token/src/configurations.ts
+++ b/packages/middleware-token/src/configurations.ts
@@ -1,4 +1,4 @@
-import { TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
+import type { TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
 
 /**
  * @public
diff --git a/packages/middleware-token/src/getTokenPlugin.ts b/packages/middleware-token/src/getTokenPlugin.ts
index e05fd3d72c25..5d2c5b011da0 100644
--- a/packages/middleware-token/src/getTokenPlugin.ts
+++ b/packages/middleware-token/src/getTokenPlugin.ts
@@ -1,6 +1,6 @@
-import { Pluggable } from "@smithy/types";
+import type { Pluggable } from "@smithy/types";
 
-import { TokenResolvedConfig } from "./configurations";
+import type { TokenResolvedConfig } from "./configurations";
 import { tokenMiddleware, tokenMiddlewareOptions } from "./tokenMiddleware";
 
 /**
diff --git a/packages/middleware-token/src/normalizeTokenProvider.ts b/packages/middleware-token/src/normalizeTokenProvider.ts
index 997b955e1566..279bc7c6af4e 100644
--- a/packages/middleware-token/src/normalizeTokenProvider.ts
+++ b/packages/middleware-token/src/normalizeTokenProvider.ts
@@ -1,6 +1,6 @@
-import { TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
+import type { TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
 import { memoize } from "@smithy/property-provider";
-import { MemoizedProvider } from "@smithy/types";
+import type { MemoizedProvider } from "@smithy/types";
 import { normalizeProvider } from "@smithy/util-middleware";
 
 const isTokenWithExpiry = (token: TokenIdentity) => token.expiration !== undefined;
diff --git a/packages/middleware-token/src/resolveTokenConfig.ts b/packages/middleware-token/src/resolveTokenConfig.ts
index d783821f5b0f..c67c9b8160ad 100644
--- a/packages/middleware-token/src/resolveTokenConfig.ts
+++ b/packages/middleware-token/src/resolveTokenConfig.ts
@@ -1,4 +1,4 @@
-import { TokenInputConfig, TokenResolvedConfig } from "./configurations";
+import type { TokenInputConfig, TokenResolvedConfig } from "./configurations";
 import { normalizeTokenProvider } from "./normalizeTokenProvider";
 import { tokenDefaultProvider } from "./tokenDefaultProvider";
 
diff --git a/packages/middleware-token/src/tokenMiddleware.ts b/packages/middleware-token/src/tokenMiddleware.ts
index 4732ce0a8404..0e8b1cc66bb5 100644
--- a/packages/middleware-token/src/tokenMiddleware.ts
+++ b/packages/middleware-token/src/tokenMiddleware.ts
@@ -1,16 +1,16 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   FinalizeHandler,
   FinalizeHandlerArguments,
   FinalizeHandlerOutput,
   FinalizeRequestMiddleware,
   HandlerExecutionContext,
   HttpAuthDefinition,
-  HttpAuthLocation,
   RelativeMiddlewareOptions,
 } from "@smithy/types";
+import { HttpAuthLocation } from "@smithy/types";
 
-import { TokenResolvedConfig } from "./configurations";
+import type { TokenResolvedConfig } from "./configurations";
 
 /**
  * @internal
diff --git a/packages/middleware-user-agent/src/configurations.ts b/packages/middleware-user-agent/src/configurations.ts
index 2c0710b50d98..8f5fdb844c64 100644
--- a/packages/middleware-user-agent/src/configurations.ts
+++ b/packages/middleware-user-agent/src/configurations.ts
@@ -1,4 +1,4 @@
-import { Provider, UserAgent } from "@smithy/types";
+import type { Provider, UserAgent } from "@smithy/types";
 /**
  * @public
  */
diff --git a/packages/middleware-user-agent/src/user-agent-middleware.spec.ts b/packages/middleware-user-agent/src/user-agent-middleware.spec.ts
index b971fb2588f1..d7afea56944d 100644
--- a/packages/middleware-user-agent/src/user-agent-middleware.spec.ts
+++ b/packages/middleware-user-agent/src/user-agent-middleware.spec.ts
@@ -1,6 +1,6 @@
 import { setPartitionInfo, useDefaultPartitionInfo } from "@aws-sdk/util-endpoints";
 import { HttpRequest } from "@smithy/protocol-http";
-import { UserAgentPair } from "@smithy/types";
+import type { UserAgentPair } from "@smithy/types";
 
 import { USER_AGENT, X_AMZ_USER_AGENT } from "./constants";
 import { userAgentMiddleware } from "./user-agent-middleware";
diff --git a/packages/middleware-user-agent/src/user-agent-middleware.ts b/packages/middleware-user-agent/src/user-agent-middleware.ts
index 456f967b7d8a..dc080382becd 100644
--- a/packages/middleware-user-agent/src/user-agent-middleware.ts
+++ b/packages/middleware-user-agent/src/user-agent-middleware.ts
@@ -1,6 +1,6 @@
 import { getUserAgentPrefix } from "@aws-sdk/util-endpoints";
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   AbsoluteLocation,
   BuildHandler,
   BuildHandlerArguments,
@@ -12,7 +12,7 @@ import {
   UserAgentPair,
 } from "@smithy/types";
 
-import { UserAgentResolvedConfig } from "./configurations";
+import type { UserAgentResolvedConfig } from "./configurations";
 import {
   SPACE,
   UA_ESCAPE_CHAR,
diff --git a/packages/middleware-websocket/src/EventStreamPayloadHandler.spec.ts b/packages/middleware-websocket/src/EventStreamPayloadHandler.spec.ts
index 117ab62ab33c..4ff1f2dea113 100644
--- a/packages/middleware-websocket/src/EventStreamPayloadHandler.spec.ts
+++ b/packages/middleware-websocket/src/EventStreamPayloadHandler.spec.ts
@@ -2,7 +2,14 @@
  * @jest-environment jsdom
  */
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { Decoder, Encoder, FinalizeHandler, FinalizeHandlerArguments, HttpRequest, MessageSigner } from "@smithy/types";
+import type {
+  Decoder,
+  Encoder,
+  FinalizeHandler,
+  FinalizeHandlerArguments,
+  HttpRequest,
+  MessageSigner,
+} from "@smithy/types";
 import { ReadableStream, TransformStream } from "web-streams-polyfill";
 
 import { EventStreamPayloadHandler } from "./EventStreamPayloadHandler";
diff --git a/packages/middleware-websocket/src/EventStreamPayloadHandler.ts b/packages/middleware-websocket/src/EventStreamPayloadHandler.ts
index 5551a59fc4fb..eb281c5ebb97 100644
--- a/packages/middleware-websocket/src/EventStreamPayloadHandler.ts
+++ b/packages/middleware-websocket/src/EventStreamPayloadHandler.ts
@@ -1,5 +1,5 @@
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import {
+import type {
   Decoder,
   Encoder,
   EventStreamPayloadHandler as IEventStreamPayloadHandler,
diff --git a/packages/middleware-websocket/src/WebsocketSignatureV4.spec.ts b/packages/middleware-websocket/src/WebsocketSignatureV4.spec.ts
index d8e4b79729e6..b419a9c30605 100644
--- a/packages/middleware-websocket/src/WebsocketSignatureV4.spec.ts
+++ b/packages/middleware-websocket/src/WebsocketSignatureV4.spec.ts
@@ -1,6 +1,6 @@
 // TODO: remove this file as duplicated to @aws-sdk/middleware-websocket
 import { HttpRequest } from "@smithy/protocol-http";
-import { RequestPresigningArguments, RequestSigningArguments } from "@smithy/types";
+import type { RequestPresigningArguments, RequestSigningArguments } from "@smithy/types";
 
 import { WebsocketSignatureV4 } from "./WebsocketSignatureV4";
 
diff --git a/packages/middleware-websocket/src/WebsocketSignatureV4.ts b/packages/middleware-websocket/src/WebsocketSignatureV4.ts
index d303270d8e23..4b32480150c1 100644
--- a/packages/middleware-websocket/src/WebsocketSignatureV4.ts
+++ b/packages/middleware-websocket/src/WebsocketSignatureV4.ts
@@ -1,6 +1,6 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { SignatureV4 as BaseSignatureV4 } from "@smithy/signature-v4";
-import {
+import type { SignatureV4 as BaseSignatureV4 } from "@smithy/signature-v4";
+import type {
   HttpRequest as IHttpRequest,
   RequestPresigner,
   RequestPresigningArguments,
diff --git a/packages/middleware-websocket/src/eventstream-payload-handler-provider.ts b/packages/middleware-websocket/src/eventstream-payload-handler-provider.ts
index e3d1b6ae8736..e267e23e226d 100644
--- a/packages/middleware-websocket/src/eventstream-payload-handler-provider.ts
+++ b/packages/middleware-websocket/src/eventstream-payload-handler-provider.ts
@@ -1,4 +1,4 @@
-import { Decoder, Encoder, EventStreamPayloadHandlerProvider, MessageSigner, Provider } from "@smithy/types";
+import type { Decoder, Encoder, EventStreamPayloadHandlerProvider, MessageSigner, Provider } from "@smithy/types";
 
 import { EventStreamPayloadHandler } from "./EventStreamPayloadHandler";
 
diff --git a/packages/middleware-websocket/src/get-event-signing-stream.spec.ts b/packages/middleware-websocket/src/get-event-signing-stream.spec.ts
index d88f98d47c92..f8a75791d85b 100644
--- a/packages/middleware-websocket/src/get-event-signing-stream.spec.ts
+++ b/packages/middleware-websocket/src/get-event-signing-stream.spec.ts
@@ -2,7 +2,7 @@
  * @jest-environment jsdom
  */
 import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { Message, MessageHeaders, SignedMessage } from "@smithy/types";
+import type { Message, MessageHeaders, SignedMessage } from "@smithy/types";
 import { fromUtf8, toUtf8 } from "@smithy/util-utf8";
 import { TransformStream } from "web-streams-polyfill";
 
diff --git a/packages/middleware-websocket/src/get-event-signing-stream.ts b/packages/middleware-websocket/src/get-event-signing-stream.ts
index 9da5909797d0..a5a5e0bebd04 100644
--- a/packages/middleware-websocket/src/get-event-signing-stream.ts
+++ b/packages/middleware-websocket/src/get-event-signing-stream.ts
@@ -1,5 +1,5 @@
-import { EventStreamCodec } from "@smithy/eventstream-codec";
-import { MessageHeaders, MessageSigner } from "@smithy/types";
+import type { EventStreamCodec } from "@smithy/eventstream-codec";
+import type { MessageHeaders, MessageSigner } from "@smithy/types";
 import { fromHex } from "@smithy/util-hex-encoding";
 
 /**
diff --git a/packages/middleware-websocket/src/getWebSocketPlugin.ts b/packages/middleware-websocket/src/getWebSocketPlugin.ts
index ab06a16323e9..e88630d7365a 100644
--- a/packages/middleware-websocket/src/getWebSocketPlugin.ts
+++ b/packages/middleware-websocket/src/getWebSocketPlugin.ts
@@ -1,4 +1,4 @@
-import { Pluggable, RequestHandler } from "@smithy/types";
+import type { Pluggable, RequestHandler } from "@smithy/types";
 
 import { injectSessionIdMiddleware, injectSessionIdMiddlewareOptions } from "./middleware-session-id";
 import { websocketEndpointMiddleware, websocketEndpointMiddlewareOptions } from "./middleware-websocket-endpoint";
diff --git a/packages/middleware-websocket/src/middleware-session-id.ts b/packages/middleware-websocket/src/middleware-session-id.ts
index 8ba103868753..c2aaff651ba0 100644
--- a/packages/middleware-websocket/src/middleware-session-id.ts
+++ b/packages/middleware-websocket/src/middleware-session-id.ts
@@ -1,4 +1,4 @@
-import {
+import type {
   InitializeHandler,
   InitializeHandlerArguments,
   InitializeHandlerOptions,
diff --git a/packages/middleware-websocket/src/middleware-websocket-endpoint.spec.ts b/packages/middleware-websocket/src/middleware-websocket-endpoint.spec.ts
index 0472fc1f1efe..fe1677edb5d4 100644
--- a/packages/middleware-websocket/src/middleware-websocket-endpoint.spec.ts
+++ b/packages/middleware-websocket/src/middleware-websocket-endpoint.spec.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import { BuildHandlerArguments, RequestHandler } from "@smithy/types";
+import type { BuildHandlerArguments, RequestHandler } from "@smithy/types";
 
 import { websocketEndpointMiddleware } from "./middleware-websocket-endpoint";
 
diff --git a/packages/middleware-websocket/src/middleware-websocket-endpoint.ts b/packages/middleware-websocket/src/middleware-websocket-endpoint.ts
index ed36f4a1ef32..b69b5fc64009 100644
--- a/packages/middleware-websocket/src/middleware-websocket-endpoint.ts
+++ b/packages/middleware-websocket/src/middleware-websocket-endpoint.ts
@@ -1,5 +1,5 @@
 import { HttpRequest } from "@smithy/protocol-http";
-import {
+import type {
   BuildHandler,
   BuildHandlerArguments,
   BuildMiddleware,
diff --git a/packages/middleware-websocket/src/utils.ts b/packages/middleware-websocket/src/utils.ts
index 21936bedf342..ed03b02c8abe 100644
--- a/packages/middleware-websocket/src/utils.ts
+++ b/packages/middleware-websocket/src/utils.ts
@@ -1,3 +1,3 @@
-import { HttpRequest } from "@smithy/types";
+import type { HttpRequest } from "@smithy/types";
 
 export const isWebSocketRequest = (request: HttpRequest) => request.protocol === "ws:" || request.protocol === "wss:";
diff --git a/packages/middleware-websocket/src/websocket-configuration.ts b/packages/middleware-websocket/src/websocket-configuration.ts
index 189483cd4784..af0e79cf836c 100644
--- a/packages/middleware-websocket/src/websocket-configuration.ts
+++ b/packages/middleware-websocket/src/websocket-configuration.ts
@@ -1,5 +1,5 @@
-import { SignatureV4 as BaseSignatureV4 } from "@smithy/signature-v4";
-import { AuthScheme, RequestHandler, RequestSigner } from "@smithy/types";
+import type { SignatureV4 as BaseSignatureV4 } from "@smithy/signature-v4";
+import type { AuthScheme, RequestHandler, RequestSigner } from "@smithy/types";
 
 import { WebsocketSignatureV4 } from "./WebsocketSignatureV4";
 
diff --git a/packages/middleware-websocket/src/websocket-fetch-handler.ts b/packages/middleware-websocket/src/websocket-fetch-handler.ts
index 23e72bfd63be..f5be775dd432 100644
--- a/packages/middleware-websocket/src/websocket-fetch-handler.ts
+++ b/packages/middleware-websocket/src/websocket-fetch-handler.ts
@@ -1,8 +1,9 @@
 import { formatUrl } from "@aws-sdk/util-format-url";
 import { iterableToReadableStream, readableStreamtoIterable } from "@smithy/eventstream-serde-browser";
 import { FetchHttpHandler } from "@smithy/fetch-http-handler";
-import { HttpRequest, HttpResponse } from "@smithy/protocol-http";
-import { Provider, RequestHandler, RequestHandlerMetadata } from "@smithy/types";
+import type { HttpRequest } from "@smithy/protocol-http";
+import { HttpResponse } from "@smithy/protocol-http";
+import type { Provider, RequestHandler, RequestHandlerMetadata } from "@smithy/types";
 
 import { isWebSocketRequest } from "./utils";
 
diff --git a/packages/polly-request-presigner/src/getSignedUrls.spec.ts b/packages/polly-request-presigner/src/getSignedUrls.spec.ts
index 8cbb38b9e8ec..b0b5fa7b45dd 100644
--- a/packages/polly-request-presigner/src/getSignedUrls.spec.ts
+++ b/packages/polly-request-presigner/src/getSignedUrls.spec.ts
@@ -14,7 +14,7 @@ jest.mock("@aws-sdk/util-format-url", () => ({
   formatUrl: (url: any) => url,
 }));
 
-import { AwsCredentialIdentity, RequestPresigningArguments } from "@smithy/types";
+import type { AwsCredentialIdentity, RequestPresigningArguments } from "@smithy/types";
 
 import { getSignedUrl } from "./getSignedUrls";
 
diff --git a/packages/polly-request-presigner/src/getSignedUrls.ts b/packages/polly-request-presigner/src/getSignedUrls.ts
index ea92b9d38225..5924393b3593 100644
--- a/packages/polly-request-presigner/src/getSignedUrls.ts
+++ b/packages/polly-request-presigner/src/getSignedUrls.ts
@@ -1,4 +1,4 @@
-import { PollyClient, SynthesizeSpeechCommand } from "@aws-sdk/client-polly";
+import type { PollyClient, SynthesizeSpeechCommand } from "@aws-sdk/client-polly";
 import { formatUrl } from "@aws-sdk/util-format-url";
 import { HttpRequest } from "@smithy/protocol-http";
 import { SignatureV4 } from "@smithy/signature-v4";
diff --git a/packages/polly-request-presigner/src/getSynthesizeSpeechUrl.ts b/packages/polly-request-presigner/src/getSynthesizeSpeechUrl.ts
index 624b58a2253a..14e4672a119e 100644
--- a/packages/polly-request-presigner/src/getSynthesizeSpeechUrl.ts
+++ b/packages/polly-request-presigner/src/getSynthesizeSpeechUrl.ts
@@ -1,4 +1,5 @@
-import { PollyClient, SynthesizeSpeechCommand, SynthesizeSpeechInput } from "@aws-sdk/client-polly";
+import type { PollyClient, SynthesizeSpeechInput } from "@aws-sdk/client-polly";
+import { SynthesizeSpeechCommand } from "@aws-sdk/client-polly";
 
 import { getSignedUrl } from "./getSignedUrls";
 
diff --git a/packages/rds-signer/src/Signer.spec.ts b/packages/rds-signer/src/Signer.spec.ts
index 9639094efc89..ea30f8a012de 100644
--- a/packages/rds-signer/src/Signer.spec.ts
+++ b/packages/rds-signer/src/Signer.spec.ts
@@ -4,7 +4,8 @@ import { loadConfig } from "@smithy/node-config-provider";
 import { HttpRequest } from "@smithy/protocol-http";
 import { SignatureV4 } from "@smithy/signature-v4";
 
-import { Signer, SignerConfig } from "./Signer";
+import type { SignerConfig } from "./Signer";
+import { Signer } from "./Signer";
 
 const mockPresign = jest.fn();
 jest.mock("@smithy/signature-v4", () => {
diff --git a/packages/rds-signer/src/Signer.ts b/packages/rds-signer/src/Signer.ts
index 406443550aa0..eb376de2082a 100644
--- a/packages/rds-signer/src/Signer.ts
+++ b/packages/rds-signer/src/Signer.ts
@@ -1,7 +1,7 @@
 import { formatUrl } from "@aws-sdk/util-format-url";
 import { HttpRequest } from "@smithy/protocol-http";
 import { SignatureV4 } from "@smithy/signature-v4";
-import {
+import type {
   AwsCredentialIdentity,
   AwsCredentialIdentityProvider,
   ChecksumConstructor,
diff --git a/packages/rds-signer/src/runtimeConfig.browser.ts b/packages/rds-signer/src/runtimeConfig.browser.ts
index e98cab775200..a574cffe428c 100644
--- a/packages/rds-signer/src/runtimeConfig.browser.ts
+++ b/packages/rds-signer/src/runtimeConfig.browser.ts
@@ -1,7 +1,7 @@
 import { Sha256 } from "@aws-crypto/sha256-browser";
 import { invalidProvider } from "@smithy/invalid-dependency";
 
-import { SignerConfig } from "./Signer";
+import type { SignerConfig } from "./Signer";
 
 /**
  * @internal
diff --git a/packages/rds-signer/src/runtimeConfig.native.ts b/packages/rds-signer/src/runtimeConfig.native.ts
index e20910ba5655..e2e27099e7ee 100644
--- a/packages/rds-signer/src/runtimeConfig.native.ts
+++ b/packages/rds-signer/src/runtimeConfig.native.ts
@@ -1,7 +1,7 @@
 import { Sha256 } from "@aws-crypto/sha256-js";
 import { invalidProvider } from "@smithy/invalid-dependency";
 
-import { SignerConfig } from "./Signer";
+import type { SignerConfig } from "./Signer";
 
 /**
  * @internal
diff --git a/packages/rds-signer/src/runtimeConfig.spec.ts b/packages/rds-signer/src/runtimeConfig.spec.ts
index 9d1683925a2b..1b7d725c9a56 100644
--- a/packages/rds-signer/src/runtimeConfig.spec.ts
+++ b/packages/rds-signer/src/runtimeConfig.spec.ts
@@ -1,6 +1,6 @@
 import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
 import { getRuntimeConfig as getRnRuntimeConfig } from "./runtimeConfig.native";
-import { SignerConfig } from "./Signer";
+import type { SignerConfig } from "./Signer";
 
 describe("getRuntimeConfig", () => {
   it.each([
diff --git a/packages/rds-signer/src/runtimeConfig.ts b/packages/rds-signer/src/runtimeConfig.ts
index f413d71bae1a..b0b941369a99 100644
--- a/packages/rds-signer/src/runtimeConfig.ts
+++ b/packages/rds-signer/src/runtimeConfig.ts
@@ -3,7 +3,7 @@ import { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } from "@sm
 import { Hash } from "@smithy/hash-node";
 import { loadConfig } from "@smithy/node-config-provider";
 
-import { SignerConfig } from "./Signer";
+import type { SignerConfig } from "./Signer";
 
 /**
  * @internal
diff --git a/packages/region-config-resolver/src/extensions/index.ts b/packages/region-config-resolver/src/extensions/index.ts
index 27c40a409f60..22280d73947b 100644
--- a/packages/region-config-resolver/src/extensions/index.ts
+++ b/packages/region-config-resolver/src/extensions/index.ts
@@ -1,5 +1,5 @@
-import { AwsRegionExtensionConfiguration } from "@aws-sdk/types";
-import { Provider } from "@smithy/types";
+import type { AwsRegionExtensionConfiguration } from "@aws-sdk/types";
+import type { Provider } from "@smithy/types";
 
 export type RegionExtensionRuntimeConfigType = Partial<{ region: string | Provider<string> }>;
 
diff --git a/packages/region-config-resolver/src/regionConfig/config.ts b/packages/region-config-resolver/src/regionConfig/config.ts
index 95428045597b..69c60977ecbc 100644
--- a/packages/region-config-resolver/src/regionConfig/config.ts
+++ b/packages/region-config-resolver/src/regionConfig/config.ts
@@ -1,4 +1,4 @@
-import { LoadedConfigSelectors, LocalConfigOptions } from "@smithy/node-config-provider";
+import type { LoadedConfigSelectors, LocalConfigOptions } from "@smithy/node-config-provider";
 
 /**
  * @internal
diff --git a/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.spec.ts b/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.spec.ts
index f5d4bda69ff2..165bb9017139 100644
--- a/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.spec.ts
+++ b/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.spec.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 
 import { getRealRegion } from "./getRealRegion";
 import { isFipsRegion } from "./isFipsRegion";
diff --git a/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.ts b/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.ts
index d1ee3c8561b1..d6f1f2e4c40a 100644
--- a/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.ts
+++ b/packages/region-config-resolver/src/regionConfig/resolveRegionConfig.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 
 import { getRealRegion } from "./getRealRegion";
 import { isFipsRegion } from "./isFipsRegion";
diff --git a/packages/s3-presigned-post/src/createPresignedPost.spec.ts b/packages/s3-presigned-post/src/createPresignedPost.spec.ts
index dd8d32bae25b..d3b07c31f0ab 100644
--- a/packages/s3-presigned-post/src/createPresignedPost.spec.ts
+++ b/packages/s3-presigned-post/src/createPresignedPost.spec.ts
@@ -1,5 +1,5 @@
 import { defaultEndpointResolver } from "@aws-sdk/client-s3/src/endpoint/endpointResolver";
-import { HttpRequest, SourceData } from "@smithy/types";
+import type { HttpRequest, SourceData } from "@smithy/types";
 
 import {
   ALGORITHM_IDENTIFIER,
diff --git a/packages/s3-presigned-post/src/createPresignedPost.ts b/packages/s3-presigned-post/src/createPresignedPost.ts
index a4abaac439b1..4572af429ad7 100644
--- a/packages/s3-presigned-post/src/createPresignedPost.ts
+++ b/packages/s3-presigned-post/src/createPresignedPost.ts
@@ -1,12 +1,10 @@
-import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
+import type { S3Client } from "@aws-sdk/client-s3";
+import { PutObjectCommand } from "@aws-sdk/client-s3";
 import { formatUrl } from "@aws-sdk/util-format-url";
-import {
-  EndpointParameterInstructionsSupplier,
-  getEndpointFromInstructions,
-  toEndpointV1,
-} from "@smithy/middleware-endpoint";
+import type { EndpointParameterInstructionsSupplier } from "@smithy/middleware-endpoint";
+import { getEndpointFromInstructions, toEndpointV1 } from "@smithy/middleware-endpoint";
 import { createScope, getSigningKey } from "@smithy/signature-v4";
-import { ChecksumConstructor, HashConstructor, SourceData } from "@smithy/types";
+import type { ChecksumConstructor, HashConstructor, SourceData } from "@smithy/types";
 import { toHex } from "@smithy/util-hex-encoding";
 import { toUint8Array } from "@smithy/util-utf8";
 
@@ -18,7 +16,7 @@ import {
   SIGNATURE_QUERY_PARAM,
   TOKEN_QUERY_PARAM,
 } from "./constants";
-import { Conditions as PolicyEntry } from "./types";
+import type { Conditions as PolicyEntry } from "./types";
 
 type Fields = Record<string, string>;
 
@@ -74,10 +72,10 @@ export const createPresignedPost = async (
     conditionsSet.add(stringifiedCondition);
   }
 
-  for (const [k,v] of Object.entries(fields)) {
-    conditionsSet.add(JSON.stringify({ [k]: v }))
-  }  
-  
+  for (const [k, v] of Object.entries(fields)) {
+    conditionsSet.add(JSON.stringify({ [k]: v }));
+  }
+
   if (Key.endsWith("${filename}")) {
     conditionsSet.add(JSON.stringify(["starts-with", "$key", Key.substring(0, Key.lastIndexOf("${filename}"))]));
   } else {
diff --git a/packages/s3-request-presigner/src/getSignedUrl.spec.ts b/packages/s3-request-presigner/src/getSignedUrl.spec.ts
index d202c80498ea..7aee41f22d12 100644
--- a/packages/s3-request-presigner/src/getSignedUrl.spec.ts
+++ b/packages/s3-request-presigner/src/getSignedUrl.spec.ts
@@ -23,8 +23,8 @@ jest.mock("@aws-sdk/util-format-url", () => ({
   formatUrl: (url: any) => url,
 }));
 
-import { HttpRequest } from "@smithy/protocol-http";
-import { RequestPresigningArguments } from "@smithy/types";
+import type { HttpRequest } from "@smithy/protocol-http";
+import type { RequestPresigningArguments } from "@smithy/types";
 
 import { getSignedUrl } from "./getSignedUrl";
 
diff --git a/packages/s3-request-presigner/src/getSignedUrl.ts b/packages/s3-request-presigner/src/getSignedUrl.ts
index a5b2556ddc14..8ff7595993d7 100644
--- a/packages/s3-request-presigner/src/getSignedUrl.ts
+++ b/packages/s3-request-presigner/src/getSignedUrl.ts
@@ -1,8 +1,9 @@
 import { formatUrl } from "@aws-sdk/util-format-url";
-import { EndpointParameterInstructionsSupplier, getEndpointFromInstructions } from "@smithy/middleware-endpoint";
+import type { EndpointParameterInstructionsSupplier } from "@smithy/middleware-endpoint";
+import { getEndpointFromInstructions } from "@smithy/middleware-endpoint";
 import { HttpRequest } from "@smithy/protocol-http";
-import { Client, Command } from "@smithy/smithy-client";
-import {
+import type { Client, Command } from "@smithy/smithy-client";
+import type {
   BuildMiddleware,
   EndpointV2,
   HttpRequest as IHttpRequest,
diff --git a/packages/s3-request-presigner/src/presigner.spec.ts b/packages/s3-request-presigner/src/presigner.spec.ts
index 016d873f211e..8e6edd140135 100644
--- a/packages/s3-request-presigner/src/presigner.spec.ts
+++ b/packages/s3-request-presigner/src/presigner.spec.ts
@@ -12,7 +12,8 @@ import {
   SIGNED_HEADERS_QUERY_PARAM,
   UNSIGNED_PAYLOAD,
 } from "./constants";
-import { S3RequestPresigner, S3RequestPresignerOptions } from "./presigner";
+import type { S3RequestPresignerOptions } from "./presigner";
+import { S3RequestPresigner } from "./presigner";
 
 describe("s3 presigner", () => {
   const s3ResolvedConfig: S3RequestPresignerOptions = {
diff --git a/packages/s3-request-presigner/src/presigner.ts b/packages/s3-request-presigner/src/presigner.ts
index 65726bf380f9..1e531c23bb1f 100644
--- a/packages/s3-request-presigner/src/presigner.ts
+++ b/packages/s3-request-presigner/src/presigner.ts
@@ -1,6 +1,7 @@
-import { SignatureV4MultiRegion, SignatureV4MultiRegionInit } from "@aws-sdk/signature-v4-multi-region";
-import { AwsCredentialIdentity, RequestPresigner, RequestPresigningArguments } from "@smithy/types";
-import { HttpRequest as IHttpRequest } from "@smithy/types";
+import type { SignatureV4MultiRegionInit } from "@aws-sdk/signature-v4-multi-region";
+import { SignatureV4MultiRegion } from "@aws-sdk/signature-v4-multi-region";
+import type { AwsCredentialIdentity, RequestPresigner, RequestPresigningArguments } from "@smithy/types";
+import type { HttpRequest as IHttpRequest } from "@smithy/types";
 
 import { SHA256_HEADER, UNSIGNED_PAYLOAD } from "./constants";
 
diff --git a/packages/sha256-tree-hash/src/index.ts b/packages/sha256-tree-hash/src/index.ts
index ea4d110d378d..e9f0dde5d384 100644
--- a/packages/sha256-tree-hash/src/index.ts
+++ b/packages/sha256-tree-hash/src/index.ts
@@ -1,4 +1,4 @@
-import { Checksum, ChecksumConstructor, Decoder, HashConstructor, SourceData } from "@smithy/types";
+import type { Checksum, ChecksumConstructor, Decoder, HashConstructor, SourceData } from "@smithy/types";
 
 const MiB = 1048576;
 
diff --git a/packages/signature-v4-crt/src/CrtSignerV4.ts b/packages/signature-v4-crt/src/CrtSignerV4.ts
index 29dda4e4bece..7f4df392b6a1 100644
--- a/packages/signature-v4-crt/src/CrtSignerV4.ts
+++ b/packages/signature-v4-crt/src/CrtSignerV4.ts
@@ -1,14 +1,8 @@
-import { AwsCredentialIdentity } from "@aws-sdk/types";
+import type { AwsCredentialIdentity } from "@aws-sdk/types";
 import { parseQueryString } from "@smithy/querystring-parser";
-import {
-  getCanonicalQuery,
-  getPayloadHash,
-  moveHeadersToQuery,
-  prepareRequest,
-  SignatureV4CryptoInit,
-  SignatureV4Init,
-} from "@smithy/signature-v4";
-import {
+import type { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
+import { getCanonicalQuery, getPayloadHash, moveHeadersToQuery, prepareRequest } from "@smithy/signature-v4";
+import type {
   HttpRequest,
   Provider,
   QueryParameterBag,
diff --git a/packages/signature-v4-crt/src/headerUtil.ts b/packages/signature-v4-crt/src/headerUtil.ts
index b27683f490b3..d868cbf58b34 100644
--- a/packages/signature-v4-crt/src/headerUtil.ts
+++ b/packages/signature-v4-crt/src/headerUtil.ts
@@ -1,4 +1,4 @@
-import { HeaderBag } from "@smithy/types";
+import type { HeaderBag } from "@smithy/types";
 
 export function hasHeader(soughtHeader: string, headers: HeaderBag): boolean {
   soughtHeader = soughtHeader.toLowerCase();
diff --git a/packages/signature-v4-crt/src/suite.fixture.ts b/packages/signature-v4-crt/src/suite.fixture.ts
index b2d0e5616d43..0d788cd75269 100644
--- a/packages/signature-v4-crt/src/suite.fixture.ts
+++ b/packages/signature-v4-crt/src/suite.fixture.ts
@@ -1,4 +1,4 @@
-import { HttpRequest } from "@smithy/types";
+import type { HttpRequest } from "@smithy/types";
 
 export interface TestCase {
   name: string;
diff --git a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.spec.ts b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.spec.ts
index 32ca2575d1a1..35ef324122c2 100644
--- a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.spec.ts
+++ b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.spec.ts
@@ -8,7 +8,8 @@ import { CrtSignerV4 } from "@aws-sdk/signature-v4-crt";
 import { SignatureV4 } from "@smithy/signature-v4";
 
 import { signatureV4CrtContainer } from "./signature-v4-crt-container";
-import { SignatureV4MultiRegion, SignatureV4MultiRegionInit } from "./SignatureV4MultiRegion";
+import type { SignatureV4MultiRegionInit } from "./SignatureV4MultiRegion";
+import { SignatureV4MultiRegion } from "./SignatureV4MultiRegion";
 
 describe("SignatureV4MultiRegion", () => {
   const params: SignatureV4MultiRegionInit = {
diff --git a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts
index 9fa7d410e1a1..c0b0203f2645 100644
--- a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts
+++ b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts
@@ -1,6 +1,6 @@
 import { SignatureV4S3Express } from "@aws-sdk/middleware-sdk-s3";
-import { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
-import {
+import type { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
+import type {
   AwsCredentialIdentity,
   HttpRequest,
   RequestPresigner,
@@ -9,7 +9,8 @@ import {
   RequestSigningArguments,
 } from "@smithy/types";
 
-import { OptionalCrtSignerV4, signatureV4CrtContainer } from "./signature-v4-crt-container";
+import type { OptionalCrtSignerV4 } from "./signature-v4-crt-container";
+import { signatureV4CrtContainer } from "./signature-v4-crt-container";
 
 /**
  * @internal
diff --git a/packages/token-providers/src/fromSso.ts b/packages/token-providers/src/fromSso.ts
index 91aada276a2f..edc9172fe699 100644
--- a/packages/token-providers/src/fromSso.ts
+++ b/packages/token-providers/src/fromSso.ts
@@ -1,12 +1,11 @@
-import { CredentialProviderOptions, TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
+import type { CredentialProviderOptions, TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
 import { TokenProviderError } from "@smithy/property-provider";
+import type { SourceProfileInit, SSOToken } from "@smithy/shared-ini-file-loader";
 import {
   getProfileName,
   getSSOTokenFromFile,
   loadSsoSessionData,
   parseKnownFiles,
-  SourceProfileInit,
-  SSOToken,
 } from "@smithy/shared-ini-file-loader";
 
 import { EXPIRE_WINDOW_MS, REFRESH_MESSAGE } from "./constants";
diff --git a/packages/token-providers/src/fromStatic.ts b/packages/token-providers/src/fromStatic.ts
index 58e738ca0c7f..5fd0ee65010b 100644
--- a/packages/token-providers/src/fromStatic.ts
+++ b/packages/token-providers/src/fromStatic.ts
@@ -1,4 +1,4 @@
-import { CredentialProviderOptions, TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
+import type { CredentialProviderOptions, TokenIdentity, TokenIdentityProvider } from "@aws-sdk/types";
 import { TokenProviderError } from "@smithy/property-provider";
 
 export interface FromStaticInit extends CredentialProviderOptions {
diff --git a/packages/token-providers/src/getNewSsoOidcToken.ts b/packages/token-providers/src/getNewSsoOidcToken.ts
index 91096f79f171..7fbfbc49b652 100644
--- a/packages/token-providers/src/getNewSsoOidcToken.ts
+++ b/packages/token-providers/src/getNewSsoOidcToken.ts
@@ -1,4 +1,4 @@
-import { SSOToken } from "@smithy/shared-ini-file-loader";
+import type { SSOToken } from "@smithy/shared-ini-file-loader";
 
 import { getSsoOidcClient } from "./getSsoOidcClient";
 
diff --git a/packages/token-providers/src/nodeProvider.ts b/packages/token-providers/src/nodeProvider.ts
index 3a29cc97d71f..5f5c0bcf2422 100644
--- a/packages/token-providers/src/nodeProvider.ts
+++ b/packages/token-providers/src/nodeProvider.ts
@@ -1,7 +1,8 @@
-import { TokenIdentityProvider } from "@aws-sdk/types";
+import type { TokenIdentityProvider } from "@aws-sdk/types";
 import { chain, memoize, TokenProviderError } from "@smithy/property-provider";
 
-import { fromSso, FromSsoInit } from "./fromSso";
+import type { FromSsoInit } from "./fromSso";
+import { fromSso } from "./fromSso";
 
 /**
  * Creates a token provider that will attempt to find token from the
diff --git a/packages/token-providers/src/validateTokenExpiry.ts b/packages/token-providers/src/validateTokenExpiry.ts
index 128bb97105e4..d2151c64d449 100644
--- a/packages/token-providers/src/validateTokenExpiry.ts
+++ b/packages/token-providers/src/validateTokenExpiry.ts
@@ -1,4 +1,4 @@
-import { TokenIdentity } from "@aws-sdk/types";
+import type { TokenIdentity } from "@aws-sdk/types";
 import { TokenProviderError } from "@smithy/property-provider";
 
 import { REFRESH_MESSAGE } from "./constants";
diff --git a/packages/token-providers/src/writeSSOTokenToFile.ts b/packages/token-providers/src/writeSSOTokenToFile.ts
index 29ef6429fcfb..0f369e3ccd41 100644
--- a/packages/token-providers/src/writeSSOTokenToFile.ts
+++ b/packages/token-providers/src/writeSSOTokenToFile.ts
@@ -1,4 +1,5 @@
-import { getSSOTokenFilepath, SSOToken } from "@smithy/shared-ini-file-loader";
+import type { SSOToken } from "@smithy/shared-ini-file-loader";
+import { getSSOTokenFilepath } from "@smithy/shared-ini-file-loader";
 // ToDo: Change to "fs/promises" when supporting nodejs>=14
 import { promises as fsPromises } from "fs";
 
diff --git a/packages/types/src/abort.spec.ts b/packages/types/src/abort.spec.ts
index baf851ca492a..ae04de6a4e5c 100644
--- a/packages/types/src/abort.spec.ts
+++ b/packages/types/src/abort.spec.ts
@@ -1,4 +1,4 @@
-import { AbortSignal } from "./abort";
+import type { AbortSignal } from "./abort";
 
 // asserts that the global abortController signal is compatible with
 // our signal type.
diff --git a/packages/types/src/credentials.ts b/packages/types/src/credentials.ts
index 33b02303ad8a..bc36dc5814c2 100644
--- a/packages/types/src/credentials.ts
+++ b/packages/types/src/credentials.ts
@@ -1,7 +1,8 @@
-import { Logger, RequestHandler } from "@smithy/types";
+import type { Logger } from "@smithy/types";
+import { RequestHandler } from "@smithy/types";
 
-import { AwsCredentialIdentity } from "./identity";
-import { Provider } from "./util";
+import type { AwsCredentialIdentity } from "./identity";
+import type { Provider } from "./util";
 
 /**
  * @public
diff --git a/packages/types/src/extensions/index.ts b/packages/types/src/extensions/index.ts
index 45984b832475..1a806528f927 100644
--- a/packages/types/src/extensions/index.ts
+++ b/packages/types/src/extensions/index.ts
@@ -1,4 +1,4 @@
-import { Provider } from "@smithy/types";
+import type { Provider } from "@smithy/types";
 
 /**
  * @internal
diff --git a/packages/types/src/http.ts b/packages/types/src/http.ts
index bcc1080b6c9f..0a75a1ca8ca1 100644
--- a/packages/types/src/http.ts
+++ b/packages/types/src/http.ts
@@ -1,4 +1,4 @@
-import { HttpResponse } from "@smithy/types";
+import type { HttpResponse } from "@smithy/types";
 export {
   Endpoint,
   HeaderBag,
diff --git a/packages/types/src/identity/AnonymousIdentity.ts b/packages/types/src/identity/AnonymousIdentity.ts
index ab810f1b304f..c96ff7dfe114 100644
--- a/packages/types/src/identity/AnonymousIdentity.ts
+++ b/packages/types/src/identity/AnonymousIdentity.ts
@@ -1,4 +1,4 @@
-import { Identity } from "./Identity";
+import type { Identity } from "./Identity";
 
 /**
  * @public
diff --git a/packages/types/src/identity/LoginIdentity.ts b/packages/types/src/identity/LoginIdentity.ts
index 2c5ecccacc1a..7acb181bf7b4 100644
--- a/packages/types/src/identity/LoginIdentity.ts
+++ b/packages/types/src/identity/LoginIdentity.ts
@@ -1,4 +1,4 @@
-import { Identity, IdentityProvider } from "./Identity";
+import type { Identity, IdentityProvider } from "./Identity";
 
 /**
  * @public
diff --git a/packages/types/src/token.ts b/packages/types/src/token.ts
index 20ab3b012668..12eb3b6b6481 100644
--- a/packages/types/src/token.ts
+++ b/packages/types/src/token.ts
@@ -1,5 +1,5 @@
-import { TokenIdentity } from "./identity";
-import { Provider } from "./util";
+import type { TokenIdentity } from "./identity";
+import type { Provider } from "./util";
 
 /**
  * @public
diff --git a/packages/util-create-request/src/index.spec.ts b/packages/util-create-request/src/index.spec.ts
index c14db15cd9e8..50b2b2dde478 100644
--- a/packages/util-create-request/src/index.spec.ts
+++ b/packages/util-create-request/src/index.spec.ts
@@ -1,7 +1,7 @@
 import { constructStack } from "@smithy/middleware-stack";
 import { HttpRequest } from "@smithy/protocol-http";
-import { Client, Command } from "@smithy/smithy-client";
-import {
+import type { Client, Command } from "@smithy/smithy-client";
+import type {
   BuildHandlerArguments,
   FinalizeHandlerArguments,
   MetadataBearer,
diff --git a/packages/util-create-request/src/index.ts b/packages/util-create-request/src/index.ts
index 3c4bdda4ec7f..bd0f37b11b98 100644
--- a/packages/util-create-request/src/index.ts
+++ b/packages/util-create-request/src/index.ts
@@ -1,5 +1,5 @@
-import { Client, Command } from "@smithy/smithy-client";
-import { BuildMiddleware, HttpRequest, MetadataBearer } from "@smithy/types";
+import type { Client, Command } from "@smithy/smithy-client";
+import type { BuildMiddleware, HttpRequest, MetadataBearer } from "@smithy/types";
 
 export async function createRequest<
   InputTypesUnion extends object,
diff --git a/packages/util-dns/src/DnsCache.ts b/packages/util-dns/src/DnsCache.ts
index b3d9429a9ed6..d8ba6eec5280 100644
--- a/packages/util-dns/src/DnsCache.ts
+++ b/packages/util-dns/src/DnsCache.ts
@@ -1,4 +1,4 @@
-import { HostAddress, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolverArguments } from "@aws-sdk/types";
 
 /**
  * DNS cache used by a {@link HostResolver} which maps:
diff --git a/packages/util-dns/src/HostResolver.browser.spec.ts b/packages/util-dns/src/HostResolver.browser.spec.ts
index eda11823aab4..53eb5d37a867 100644
--- a/packages/util-dns/src/HostResolver.browser.spec.ts
+++ b/packages/util-dns/src/HostResolver.browser.spec.ts
@@ -1,7 +1,8 @@
 /**
  * @jest-environment jsdom
  */
-import { HostAddress, HostAddressType, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolverArguments } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
 
 import { HostResolver } from "./HostResolver.browser";
 
diff --git a/packages/util-dns/src/HostResolver.browser.ts b/packages/util-dns/src/HostResolver.browser.ts
index 892ace19add0..b885990e5b52 100644
--- a/packages/util-dns/src/HostResolver.browser.ts
+++ b/packages/util-dns/src/HostResolver.browser.ts
@@ -1,4 +1,4 @@
-import { HostAddress, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
 
 /**
  * @internal
diff --git a/packages/util-dns/src/NodeDnsLookupHostResolver.spec.ts b/packages/util-dns/src/NodeDnsLookupHostResolver.spec.ts
index 028e2585924a..800dd0d99c29 100644
--- a/packages/util-dns/src/NodeDnsLookupHostResolver.spec.ts
+++ b/packages/util-dns/src/NodeDnsLookupHostResolver.spec.ts
@@ -1,5 +1,6 @@
-import { HostAddress, HostAddressType, HostResolverArguments } from "@aws-sdk/types";
-import { LookupAddress } from "dns";
+import type { HostAddress, HostResolverArguments } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
+import type { LookupAddress } from "dns";
 
 import { NodeDnsLookupHostResolver } from "./NodeDnsLookupHostResolver";
 import { HostEntryTable } from "./util/HostEntryTable";
diff --git a/packages/util-dns/src/NodeDnsLookupHostResolver.ts b/packages/util-dns/src/NodeDnsLookupHostResolver.ts
index 37079c8d40cb..b96b1adea768 100644
--- a/packages/util-dns/src/NodeDnsLookupHostResolver.ts
+++ b/packages/util-dns/src/NodeDnsLookupHostResolver.ts
@@ -1,7 +1,9 @@
-import { HostAddress, HostAddressType, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
-import { ALL, LookupAddress, LookupAllOptions, promises as dnsPromises, V4MAPPED } from "dns";
+import type { HostAddress, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
+import type { LookupAddress, LookupAllOptions } from "dns";
+import { ALL, promises as dnsPromises, V4MAPPED } from "dns";
 
-import { DnsCache } from "./DnsCache";
+import type { DnsCache } from "./DnsCache";
 import { HostEntryTable } from "./util/HostEntryTable";
 
 /**
diff --git a/packages/util-dns/src/archive/NodeDnsResolveHostResolver.spec.ts b/packages/util-dns/src/archive/NodeDnsResolveHostResolver.spec.ts
index aab90fa5e293..1693eba0f6ab 100644
--- a/packages/util-dns/src/archive/NodeDnsResolveHostResolver.spec.ts
+++ b/packages/util-dns/src/archive/NodeDnsResolveHostResolver.spec.ts
@@ -1,4 +1,5 @@
-import { HostAddress, HostAddressType, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolverArguments } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
 
 import { NodeDnsResolveHostResolver } from "./NodeDnsResolveHostResolver";
 
diff --git a/packages/util-dns/src/archive/NodeDnsResolveHostResolver.ts b/packages/util-dns/src/archive/NodeDnsResolveHostResolver.ts
index b77f7ad31c54..69f9f70b21ac 100644
--- a/packages/util-dns/src/archive/NodeDnsResolveHostResolver.ts
+++ b/packages/util-dns/src/archive/NodeDnsResolveHostResolver.ts
@@ -1,4 +1,5 @@
-import { HostAddress, HostAddressType, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolver as IHostResolver, HostResolverArguments } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
 import { promises as dnsPromises } from "dns";
 
 /**
diff --git a/packages/util-dns/src/util/HostAddressEntryCollection.spec.ts b/packages/util-dns/src/util/HostAddressEntryCollection.spec.ts
index 42660a896844..3d53239f3db0 100644
--- a/packages/util-dns/src/util/HostAddressEntryCollection.spec.ts
+++ b/packages/util-dns/src/util/HostAddressEntryCollection.spec.ts
@@ -1,7 +1,7 @@
 import { HostAddressType } from "@aws-sdk/types";
 
 import { HostAddressEntryCollection } from "./HostAddressEntryCollection";
-import { HostAddressEntry } from "./HostEntry";
+import type { HostAddressEntry } from "./HostEntry";
 
 describe(HostAddressEntryCollection.name, () => {
   let collection: HostAddressEntryCollection;
diff --git a/packages/util-dns/src/util/HostAddressEntryCollection.ts b/packages/util-dns/src/util/HostAddressEntryCollection.ts
index 5d0f06f60a85..b4a4637e0260 100644
--- a/packages/util-dns/src/util/HostAddressEntryCollection.ts
+++ b/packages/util-dns/src/util/HostAddressEntryCollection.ts
@@ -1,5 +1,5 @@
-import { DnsCacheEntryCollection } from "../DnsCache";
-import { HostAddressEntry } from "./HostEntry";
+import type { DnsCacheEntryCollection } from "../DnsCache";
+import type { HostAddressEntry } from "./HostEntry";
 
 /**
  * Collection using an Array as the underlying data structure
diff --git a/packages/util-dns/src/util/HostEntry.spec.ts b/packages/util-dns/src/util/HostEntry.spec.ts
index 1d2d73ce5b38..e74881c91a08 100644
--- a/packages/util-dns/src/util/HostEntry.spec.ts
+++ b/packages/util-dns/src/util/HostEntry.spec.ts
@@ -1,6 +1,8 @@
-import { HostAddress, HostAddressType } from "@aws-sdk/types";
+import type { HostAddress } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
 
-import { HostAddressEntry, HostEntry } from "./HostEntry";
+import type { HostAddressEntry } from "./HostEntry";
+import { HostEntry } from "./HostEntry";
 
 describe(HostEntry.name, () => {
   const HOST_ADDRESS_A_0 = {
diff --git a/packages/util-dns/src/util/HostEntry.ts b/packages/util-dns/src/util/HostEntry.ts
index bc6872de6f7b..89387e34a9a6 100644
--- a/packages/util-dns/src/util/HostEntry.ts
+++ b/packages/util-dns/src/util/HostEntry.ts
@@ -1,6 +1,7 @@
-import { HostAddress, HostAddressType } from "@aws-sdk/types";
+import type { HostAddress } from "@aws-sdk/types";
+import { HostAddressType } from "@aws-sdk/types";
 
-import { DnsCacheEntry, DnsCacheHostAddressEntry } from "../DnsCache";
+import type { DnsCacheEntry, DnsCacheHostAddressEntry } from "../DnsCache";
 import { HostAddressEntryCollection } from "./HostAddressEntryCollection";
 
 /**
diff --git a/packages/util-dns/src/util/HostEntryTable.spec.ts b/packages/util-dns/src/util/HostEntryTable.spec.ts
index 67f233f0d42a..328e7c84153a 100644
--- a/packages/util-dns/src/util/HostEntryTable.spec.ts
+++ b/packages/util-dns/src/util/HostEntryTable.spec.ts
@@ -1,4 +1,4 @@
-import { HostResolverArguments } from "@aws-sdk/types";
+import type { HostResolverArguments } from "@aws-sdk/types";
 
 import { HostEntryTable } from "./HostEntryTable";
 
diff --git a/packages/util-dns/src/util/HostEntryTable.ts b/packages/util-dns/src/util/HostEntryTable.ts
index b61d00136789..dff5ee34f381 100644
--- a/packages/util-dns/src/util/HostEntryTable.ts
+++ b/packages/util-dns/src/util/HostEntryTable.ts
@@ -1,6 +1,6 @@
-import { HostAddress, HostResolverArguments } from "@aws-sdk/types";
+import type { HostAddress, HostResolverArguments } from "@aws-sdk/types";
 
-import { DnsCache } from "../DnsCache";
+import type { DnsCache } from "../DnsCache";
 import { HostEntry } from "./HostEntry";
 
 /**
diff --git a/packages/util-dynamodb/src/NumberValue.ts b/packages/util-dynamodb/src/NumberValue.ts
index d5cbe6f5aabb..7fba07976a90 100644
--- a/packages/util-dynamodb/src/NumberValue.ts
+++ b/packages/util-dynamodb/src/NumberValue.ts
@@ -1,4 +1,4 @@
-import { NumberValue as INumberValue } from "./models";
+import type { NumberValue as INumberValue } from "./models";
 
 /**
  *
diff --git a/packages/util-dynamodb/src/convertToAttr.spec.ts b/packages/util-dynamodb/src/convertToAttr.spec.ts
index 4c9f3a90f576..22ade8cc6d97 100644
--- a/packages/util-dynamodb/src/convertToAttr.spec.ts
+++ b/packages/util-dynamodb/src/convertToAttr.spec.ts
@@ -1,11 +1,11 @@
 /**
  * @jest-environment jsdom
  */
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
 import { convertToAttr } from "./convertToAttr";
-import { marshallOptions } from "./marshall";
-import { NativeAttributeValue } from "./models";
+import type { marshallOptions } from "./marshall";
+import type { NativeAttributeValue } from "./models";
 import { NumberValue } from "./NumberValue";
 
 describe("convertToAttr", () => {
diff --git a/packages/util-dynamodb/src/convertToAttr.ts b/packages/util-dynamodb/src/convertToAttr.ts
index a617d21ca215..46f13f1cd4a6 100644
--- a/packages/util-dynamodb/src/convertToAttr.ts
+++ b/packages/util-dynamodb/src/convertToAttr.ts
@@ -1,7 +1,7 @@
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
-import { marshallOptions } from "./marshall";
-import { NativeAttributeBinary, NativeAttributeValue } from "./models";
+import type { marshallOptions } from "./marshall";
+import type { NativeAttributeBinary, NativeAttributeValue } from "./models";
 import { NumberValue } from "./NumberValue";
 
 /**
diff --git a/packages/util-dynamodb/src/convertToAttrToNative.spec.ts b/packages/util-dynamodb/src/convertToAttrToNative.spec.ts
index f9a2116eff15..0efab52d805d 100644
--- a/packages/util-dynamodb/src/convertToAttrToNative.spec.ts
+++ b/packages/util-dynamodb/src/convertToAttrToNative.spec.ts
@@ -3,7 +3,7 @@
  */
 import { convertToAttr } from "./convertToAttr";
 import { convertToNative } from "./convertToNative";
-import { NativeAttributeValue } from "./models";
+import type { NativeAttributeValue } from "./models";
 
 describe("convertToAttrToNative", () => {
   describe("null", () => {
diff --git a/packages/util-dynamodb/src/convertToNative.spec.ts b/packages/util-dynamodb/src/convertToNative.spec.ts
index 386b19ba633b..7f7f48e71a13 100644
--- a/packages/util-dynamodb/src/convertToNative.spec.ts
+++ b/packages/util-dynamodb/src/convertToNative.spec.ts
@@ -1,7 +1,7 @@
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
 import { convertToNative } from "./convertToNative";
-import { NativeAttributeValue } from "./models";
+import type { NativeAttributeValue } from "./models";
 
 describe("convertToNative", () => {
   describe("null", () => {
diff --git a/packages/util-dynamodb/src/convertToNative.ts b/packages/util-dynamodb/src/convertToNative.ts
index 3b140d5c8dc5..97209a1aa6a8 100644
--- a/packages/util-dynamodb/src/convertToNative.ts
+++ b/packages/util-dynamodb/src/convertToNative.ts
@@ -1,8 +1,8 @@
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
 import type { NativeAttributeValue, NumberValue as INumberValue } from "./models";
 import { NumberValue } from "./NumberValue";
-import { unmarshallOptions } from "./unmarshall";
+import type { unmarshallOptions } from "./unmarshall";
 
 /**
  * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.
diff --git a/packages/util-dynamodb/src/marshall.ts b/packages/util-dynamodb/src/marshall.ts
index 717838d564d2..9c5e07fa82f3 100644
--- a/packages/util-dynamodb/src/marshall.ts
+++ b/packages/util-dynamodb/src/marshall.ts
@@ -1,7 +1,7 @@
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
 import { convertToAttr } from "./convertToAttr";
-import { NativeAttributeBinary, NativeAttributeValue } from "./models";
+import type { NativeAttributeBinary, NativeAttributeValue } from "./models";
 
 /**
  * An optional configuration object for `marshall`
diff --git a/packages/util-dynamodb/src/unmarshall.ts b/packages/util-dynamodb/src/unmarshall.ts
index d6256fdc81ff..e4392c95f5a3 100644
--- a/packages/util-dynamodb/src/unmarshall.ts
+++ b/packages/util-dynamodb/src/unmarshall.ts
@@ -1,7 +1,7 @@
-import { AttributeValue } from "@aws-sdk/client-dynamodb";
+import type { AttributeValue } from "@aws-sdk/client-dynamodb";
 
 import { convertToNative } from "./convertToNative";
-import { NativeAttributeValue } from "./models";
+import type { NativeAttributeValue } from "./models";
 
 /**
  * An optional configuration object for `convertToNative`
diff --git a/packages/util-endpoints/src/aws.ts b/packages/util-endpoints/src/aws.ts
index 0b754a968878..b594b394078f 100644
--- a/packages/util-endpoints/src/aws.ts
+++ b/packages/util-endpoints/src/aws.ts
@@ -1,4 +1,5 @@
-import { customEndpointFunctions, EndpointFunctions } from "@smithy/util-endpoints";
+import type { EndpointFunctions } from "@smithy/util-endpoints";
+import { customEndpointFunctions } from "@smithy/util-endpoints";
 
 import { isVirtualHostableS3Bucket } from "./lib/aws/isVirtualHostableS3Bucket";
 import { parseArn } from "./lib/aws/parseArn";
diff --git a/packages/util-endpoints/src/lib/aws/parseArn.spec.ts b/packages/util-endpoints/src/lib/aws/parseArn.spec.ts
index baf39be11c37..d10a2e069ebf 100644
--- a/packages/util-endpoints/src/lib/aws/parseArn.spec.ts
+++ b/packages/util-endpoints/src/lib/aws/parseArn.spec.ts
@@ -1,4 +1,4 @@
-import { EndpointARN } from "@aws-sdk/types";
+import type { EndpointARN } from "@aws-sdk/types";
 
 import { parseArn } from "./parseArn";
 
diff --git a/packages/util-endpoints/src/lib/aws/parseArn.ts b/packages/util-endpoints/src/lib/aws/parseArn.ts
index 798d9097b2ed..775365911f63 100644
--- a/packages/util-endpoints/src/lib/aws/parseArn.ts
+++ b/packages/util-endpoints/src/lib/aws/parseArn.ts
@@ -1,4 +1,4 @@
-import { EndpointARN } from "@smithy/types";
+import type { EndpointARN } from "@smithy/types";
 
 /**
  * Evaluates a single string argument value, and returns an object containing
diff --git a/packages/util-endpoints/src/lib/aws/partition.ts b/packages/util-endpoints/src/lib/aws/partition.ts
index 90b793505b7c..2c6bc23d9e28 100644
--- a/packages/util-endpoints/src/lib/aws/partition.ts
+++ b/packages/util-endpoints/src/lib/aws/partition.ts
@@ -1,4 +1,4 @@
-import { EndpointPartition } from "@smithy/types";
+import type { EndpointPartition } from "@smithy/types";
 
 import partitionsInfo from "./partitions.json";
 
diff --git a/packages/util-format-url/src/index.spec.ts b/packages/util-format-url/src/index.spec.ts
index d564dbfb3fc9..30595bedcac5 100644
--- a/packages/util-format-url/src/index.spec.ts
+++ b/packages/util-format-url/src/index.spec.ts
@@ -1,4 +1,4 @@
-import { HttpRequest } from "@smithy/types";
+import type { HttpRequest } from "@smithy/types";
 
 import { formatUrl } from "./";
 
diff --git a/packages/util-format-url/src/index.ts b/packages/util-format-url/src/index.ts
index fa03eae2febc..5b524b763764 100644
--- a/packages/util-format-url/src/index.ts
+++ b/packages/util-format-url/src/index.ts
@@ -1,5 +1,5 @@
 import { buildQueryString } from "@smithy/querystring-builder";
-import { HttpRequest } from "@smithy/types";
+import type { HttpRequest } from "@smithy/types";
 
 export function formatUrl(request: Omit<HttpRequest, "headers" | "method">): string {
   const { port, query } = request;
diff --git a/packages/util-user-agent-browser/src/index.native.ts b/packages/util-user-agent-browser/src/index.native.ts
index 2d54ad3de29e..814ae5e4f3c0 100644
--- a/packages/util-user-agent-browser/src/index.native.ts
+++ b/packages/util-user-agent-browser/src/index.native.ts
@@ -1,6 +1,6 @@
-import { Provider, UserAgent } from "@smithy/types";
+import type { Provider, UserAgent } from "@smithy/types";
 
-import { DefaultUserAgentOptions } from "./configurations";
+import type { DefaultUserAgentOptions } from "./configurations";
 
 /**
  * @internal
diff --git a/packages/util-user-agent-browser/src/index.ts b/packages/util-user-agent-browser/src/index.ts
index 6fddd18de874..3286b643ba03 100644
--- a/packages/util-user-agent-browser/src/index.ts
+++ b/packages/util-user-agent-browser/src/index.ts
@@ -1,7 +1,7 @@
-import { Provider, UserAgent } from "@smithy/types";
+import type { Provider, UserAgent } from "@smithy/types";
 import bowser from "bowser";
 
-import { DefaultUserAgentOptions } from "./configurations";
+import type { DefaultUserAgentOptions } from "./configurations";
 
 /**
  * @internal
diff --git a/packages/util-user-agent-node/src/index.spec.ts b/packages/util-user-agent-node/src/index.spec.ts
index 07ff0a30a86e..855afb190980 100644
--- a/packages/util-user-agent-node/src/index.spec.ts
+++ b/packages/util-user-agent-node/src/index.spec.ts
@@ -21,7 +21,7 @@ jest.mock("@smithy/node-config-provider", () => ({
   loadConfig: () => mockAppIdLoader,
 }));
 
-import { UserAgent } from "@smithy/types";
+import type { UserAgent } from "@smithy/types";
 
 import { defaultUserAgent } from ".";
 
diff --git a/packages/util-user-agent-node/src/index.ts b/packages/util-user-agent-node/src/index.ts
index f8c09d51104f..ed8b885e38a1 100644
--- a/packages/util-user-agent-node/src/index.ts
+++ b/packages/util-user-agent-node/src/index.ts
@@ -1,5 +1,5 @@
 import { loadConfig } from "@smithy/node-config-provider";
-import { Provider, UserAgent } from "@smithy/types";
+import type { Provider, UserAgent } from "@smithy/types";
 import { platform, release } from "os";
 import { env, versions } from "process";
 
diff --git a/packages/util-user-agent-node/src/is-crt-available.ts b/packages/util-user-agent-node/src/is-crt-available.ts
index a2d30eb0da44..81074208af6a 100644
--- a/packages/util-user-agent-node/src/is-crt-available.ts
+++ b/packages/util-user-agent-node/src/is-crt-available.ts
@@ -1,4 +1,4 @@
-import { UserAgentPair } from "@smithy/types";
+import type { UserAgentPair } from "@smithy/types";
 
 import { crtAvailability } from "./crt-availability";
 
diff --git a/packages/xhr-http-handler/src/xhr-http-handler.ts b/packages/xhr-http-handler/src/xhr-http-handler.ts
index a5637056a4e0..18411d0dc720 100644
--- a/packages/xhr-http-handler/src/xhr-http-handler.ts
+++ b/packages/xhr-http-handler/src/xhr-http-handler.ts
@@ -1,6 +1,7 @@
-import { HttpHandler, HttpRequest, HttpResponse } from "@smithy/protocol-http";
+import type { HttpHandler, HttpRequest } from "@smithy/protocol-http";
+import { HttpResponse } from "@smithy/protocol-http";
 import { buildQueryString } from "@smithy/querystring-builder";
-import { HttpHandlerOptions, Provider } from "@smithy/types";
+import type { HttpHandlerOptions, Provider } from "@smithy/types";
 import { EventEmitter } from "events";
 
 import { requestTimeout } from "./request-timeout";
diff --git a/packages/xml-builder/src/XmlNode.ts b/packages/xml-builder/src/XmlNode.ts
index e463bd61ce68..1c8d1395f84d 100644
--- a/packages/xml-builder/src/XmlNode.ts
+++ b/packages/xml-builder/src/XmlNode.ts
@@ -1,5 +1,5 @@
 import { escapeAttribute } from "./escape-attribute";
-import { Stringable } from "./stringable";
+import type { Stringable } from "./stringable";
 import { XmlText } from "./XmlText";
 
 /**
diff --git a/packages/xml-builder/src/XmlText.ts b/packages/xml-builder/src/XmlText.ts
index ddab33f78922..44a78dc777fc 100644
--- a/packages/xml-builder/src/XmlText.ts
+++ b/packages/xml-builder/src/XmlText.ts
@@ -1,8 +1,8 @@
 import { escapeElement } from "./escape-element";
-import { Stringable } from "./stringable";
+import type { Stringable } from "./stringable";
 /**
  * @internal
- * 
+ *
  * Represents an XML text value.
  */
 export class XmlText implements Stringable {