From 3681b2a9450c47e67fff6aceb77ff3e353041f1e Mon Sep 17 00:00:00 2001
From: Sebastian Poxhofer <secustor@users.noreply.github.com>
Date: Mon, 19 Aug 2024 15:15:27 +0200
Subject: [PATCH] chore: eslint to enforce for typed imports (#30844)

---
 .eslintrc.js                                  |  4 +++
 lib/config/presets/internal/replacements.ts   |  7 ++--
 lib/config/validation.ts                      | 16 ++++-----
 lib/instrumentation/decorator.ts              |  3 +-
 lib/instrumentation/index.ts                  |  6 ++--
 lib/instrumentation/reporting.ts              |  3 +-
 lib/logger/remap.ts                           |  6 ++--
 .../aws-machine-image/index.spec.ts           |  8 ++---
 .../datasource/aws-machine-image/index.ts     |  8 ++---
 lib/modules/datasource/aws-rds/index.spec.ts  |  6 ++--
 lib/modules/datasource/clojure/index.spec.ts  |  3 +-
 lib/modules/datasource/crate/index.spec.ts    |  6 ++--
 .../datasource/docker/dockerhub-cache.spec.ts |  3 +-
 lib/modules/datasource/docker/ecr.ts          |  3 +-
 lib/modules/datasource/docker/index.spec.ts   |  7 ++--
 lib/modules/datasource/docker/index.ts        |  3 +-
 lib/modules/datasource/git-refs/index.spec.ts |  3 +-
 lib/modules/datasource/git-tags/index.spec.ts |  3 +-
 .../datasource/glasskube-packages/index.ts    |  2 +-
 .../datasource/gradle-version/index.spec.ts   |  3 +-
 lib/modules/datasource/maven/index.spec.ts    |  3 +-
 lib/modules/datasource/maven/s3.spec.ts       |  3 +-
 lib/modules/datasource/nuget/v2.ts            |  3 +-
 lib/modules/datasource/nuget/v3.ts            |  3 +-
 lib/modules/datasource/packagist/index.ts     |  2 +-
 .../datasource/rubygems/metadata-cache.ts     |  3 +-
 .../rubygems/versions-endpoint-cache.ts       |  3 +-
 lib/modules/datasource/unity3d/index.ts       |  3 +-
 lib/modules/manager/asdf/index.spec.ts        |  3 +-
 .../manager/azure-pipelines/extract.ts        |  4 +--
 .../manager/bazel-module/rules.spec.ts        |  4 ++-
 lib/modules/manager/bazel/parser.ts           |  3 +-
 lib/modules/manager/cargo/locked-version.ts   |  3 +-
 lib/modules/manager/cargo/update.ts           |  3 +-
 lib/modules/manager/cpanfile/language.ts      |  3 +-
 .../manager/git-submodules/extract.spec.ts    |  3 +-
 lib/modules/manager/git-submodules/extract.ts |  3 +-
 .../manager/git-submodules/update.spec.ts     |  6 ++--
 .../manager/gradle/parser/assignments.ts      |  3 +-
 lib/modules/manager/gradle/parser/common.ts   |  3 +-
 lib/modules/manager/gradle/parser/objects.ts  |  3 +-
 lib/modules/manager/helmv3/artifacts.spec.ts  |  7 ++--
 lib/modules/manager/helmv3/update.ts          |  3 +-
 lib/modules/manager/maven/extract.ts          |  3 +-
 lib/modules/manager/maven/update.ts           |  3 +-
 lib/modules/manager/mise/extract.ts           |  7 ++--
 .../manager/mise/upgradeable-tooling.ts       |  3 +-
 lib/modules/manager/mise/utils.ts             |  3 +-
 lib/modules/manager/npm/extract/index.ts      |  2 +-
 lib/modules/manager/npm/post-update/utils.ts  |  3 +-
 .../manager/npm/post-update/yarn.spec.ts      |  2 +-
 .../common/parent-version.ts                  |  4 +--
 .../npm/update/package-version/index.ts       |  3 +-
 lib/modules/manager/nuget/extract.ts          |  3 +-
 lib/modules/manager/nuget/update.ts           |  3 +-
 lib/modules/manager/nuget/util.ts             |  3 +-
 lib/modules/manager/pep621/utils.ts           |  3 +-
 lib/modules/manager/pip_setup/extract.ts      |  3 +-
 lib/modules/manager/pipenv/artifacts.spec.ts  |  2 +-
 lib/modules/manager/poetry/schema.ts          |  3 +-
 lib/modules/manager/pub/utils.ts              |  8 ++---
 lib/modules/manager/sbt/update.ts             |  3 +-
 .../manager/terraform/lockfile/hash.spec.ts   |  3 +-
 .../manager/terraform/lockfile/index.ts       |  3 +-
 lib/modules/manager/vendir/extract.ts         |  4 +--
 lib/modules/platform/azure/azure-helper.ts    |  4 +--
 lib/modules/platform/azure/index.spec.ts      |  2 +-
 lib/modules/platform/azure/index.ts           | 11 +++---
 lib/modules/platform/azure/util.ts            |  6 ++--
 .../platform/codecommit/codecommit-client.ts  | 36 ++++++++++---------
 lib/modules/platform/codecommit/index.spec.ts |  3 +-
 lib/modules/platform/codecommit/index.ts      |  4 +--
 lib/modules/platform/gitea/gitea-helper.ts    |  3 +-
 lib/modules/platform/github/issue.spec.ts     |  3 +-
 .../versioning/aws-machine-image/index.ts     |  3 +-
 .../versioning/azure-rest-api/index.ts        |  3 +-
 lib/modules/versioning/conan/range.ts         |  3 +-
 lib/modules/versioning/deb/index.ts           |  3 +-
 lib/modules/versioning/distro.ts              |  3 +-
 lib/modules/versioning/docker/index.ts        |  3 +-
 lib/modules/versioning/generic.spec.ts        |  3 +-
 lib/modules/versioning/git/index.ts           |  3 +-
 lib/modules/versioning/glasskube/index.ts     |  3 +-
 lib/modules/versioning/hermit/index.ts        |  3 +-
 lib/modules/versioning/index.spec.ts          |  3 +-
 lib/modules/versioning/loose/index.ts         |  3 +-
 lib/modules/versioning/nixpkgs/index.ts       |  3 +-
 lib/modules/versioning/nuget/range.ts         |  2 +-
 lib/modules/versioning/perl/index.ts          |  3 +-
 lib/modules/versioning/redhat/index.ts        |  3 +-
 lib/modules/versioning/regex/index.ts         |  3 +-
 lib/modules/versioning/rpm/index.ts           |  3 +-
 lib/modules/versioning/ruby/range.ts          |  3 +-
 .../versioning/ruby/strategies/bump.ts        |  3 +-
 .../versioning/ruby/strategies/replace.ts     |  3 +-
 .../versioning/ruby/strategies/widen.ts       |  3 +-
 lib/modules/versioning/ruby/version.ts        |  6 ++--
 .../versioning/semver-coerced/index.ts        |  3 +-
 lib/modules/versioning/unity3d/index.ts       |  3 +-
 lib/util/cache/package/decorator.ts           |  3 +-
 lib/util/cache/repository/impl/base.ts        |  3 +-
 lib/util/cache/repository/impl/s3.spec.ts     |  8 +++--
 lib/util/cache/repository/impl/s3.ts          |  5 ++-
 lib/util/decorator/index.spec.ts              |  3 +-
 lib/util/exec/common.ts                       |  6 ++--
 lib/util/fs/index.spec.ts                     |  3 +-
 lib/util/git/index.ts                         |  9 ++---
 lib/util/git/semantic.spec.ts                 |  3 +-
 .../github/graphql/datasource-fetcher.spec.ts |  3 +-
 lib/util/github/graphql/util.ts               |  3 +-
 lib/util/http/index.ts                        |  6 ++--
 lib/util/json-writer/editor-config.ts         |  3 +-
 lib/util/minimatch.ts                         |  3 +-
 lib/util/result.ts                            |  3 +-
 lib/util/yaml.ts                              |  3 +-
 lib/workers/global/config/parse/file.spec.ts  |  3 +-
 lib/workers/global/index.spec.ts              |  3 +-
 .../config-migration/branch/create.spec.ts    |  3 +-
 .../config-migration/branch/index.spec.ts     |  2 +-
 .../config-migration/branch/index.ts          |  3 +-
 .../config-migration/branch/rebase.spec.ts    |  3 +-
 .../config-migration/pr/index.spec.ts         |  8 ++---
 lib/workers/repository/configured.spec.ts     |  3 +-
 .../repository/dependency-dashboard.spec.ts   |  8 ++---
 lib/workers/repository/error-config.spec.ts   |  3 +-
 lib/workers/repository/error-config.ts        |  3 +-
 lib/workers/repository/error.spec.ts          |  3 +-
 .../repository/errors-warnings.spec.ts        |  3 +-
 lib/workers/repository/finalize/prune.spec.ts |  9 ++---
 .../finalize/repository-statistics.spec.ts    |  3 +-
 lib/workers/repository/index.spec.ts          |  3 +-
 lib/workers/repository/index.ts               |  3 +-
 lib/workers/repository/init/apis.spec.ts      |  3 +-
 lib/workers/repository/init/apis.ts           |  3 +-
 lib/workers/repository/init/index.spec.ts     |  3 +-
 lib/workers/repository/init/index.ts          |  3 +-
 lib/workers/repository/init/merge.spec.ts     |  2 +-
 .../repository/init/vulnerability.spec.ts     |  3 +-
 .../onboarding/branch/check.spec.ts           | 10 ++----
 .../repository/onboarding/branch/check.ts     |  3 +-
 .../onboarding/branch/config.spec.ts          |  3 +-
 .../onboarding/branch/create.spec.ts          |  3 +-
 .../onboarding/branch/index.spec.ts           | 10 ++----
 .../onboarding/branch/rebase.spec.ts          |  3 +-
 .../onboarding/pr/base-branch.spec.ts         |  3 +-
 .../onboarding/pr/config-description.spec.ts  |  3 +-
 .../repository/onboarding/pr/index.spec.ts    |  8 ++---
 .../repository/onboarding/pr/pr-list.spec.ts  |  3 +-
 .../repository/process/extract-update.ts      |  3 +-
 lib/workers/repository/process/fetch.spec.ts  |  3 +-
 lib/workers/repository/process/index.spec.ts  | 10 ++----
 lib/workers/repository/process/index.ts       |  3 +-
 lib/workers/repository/process/limits.spec.ts |  3 +-
 lib/workers/repository/process/limits.ts      |  3 +-
 .../repository/process/lookup/index.ts        |  4 ++-
 .../process/vulnerabilities.spec.ts           |  3 +-
 .../repository/process/vulnerabilities.ts     |  9 +++--
 lib/workers/repository/process/write.spec.ts  |  9 ++---
 .../repository/reconfigure/index.spec.ts      | 11 ++----
 lib/workers/repository/result.spec.ts         |  3 +-
 .../update/branch/artifacts.spec.ts           |  3 +-
 .../update/branch/check-existing.ts           |  3 +-
 lib/workers/repository/update/branch/index.ts |  3 +-
 .../repository/update/branch/schedule.ts      |  4 +--
 .../update/branch/status-checks.spec.ts       |  6 ++--
 lib/workers/repository/update/pr/automerge.ts |  3 +-
 .../repository/update/pr/body/index.ts        |  3 +-
 .../update/pr/changelog/gitea/index.ts        |  2 +-
 .../update/pr/changelog/releases.ts           |  5 +--
 lib/workers/repository/update/pr/index.ts     |  4 +--
 .../repository/update/pr/participants.ts      |  3 +-
 .../repository/updates/branchify.spec.ts      |  3 +-
 test/fixtures.ts                              |  3 +-
 test/graphql-snapshot.ts                      |  5 ++-
 test/util.ts                                  |  3 +-
 tools/docs/datasources.ts                     |  3 +-
 tools/docs/manager.ts                         |  3 +-
 tools/docs/platforms.ts                       |  3 +-
 tools/mkdocs.ts                               |  2 +-
 179 files changed, 396 insertions(+), 334 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index 43f6d809d5..0366f5cf51 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -90,6 +90,10 @@ module.exports = {
       'error',
       { assertionStyle: 'as', objectLiteralTypeAssertions: 'allow' },
     ],
+    '@typescript-eslint/consistent-type-imports': [
+      'error',
+      { disallowTypeAnnotations: false },
+    ],
 
     // Makes no sense to allow type inference for expression parameters, but require typing the response
     '@typescript-eslint/explicit-function-return-type': [
diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts
index f84473c5ff..80b6d569c5 100644
--- a/lib/config/presets/internal/replacements.ts
+++ b/lib/config/presets/internal/replacements.ts
@@ -1,10 +1,7 @@
 import replacementGroups from '../../../data/replacements.json';
 import type { Preset } from '../types';
-import {
-  PresetTemplate,
-  Replacement,
-  addPresets,
-} from './auto-generate-replacements';
+import type { PresetTemplate, Replacement } from './auto-generate-replacements';
+import { addPresets } from './auto-generate-replacements';
 
 /* eslint sort-keys: ["error", "asc", {"caseSensitive": false, "natural": true}] */
 export const presets: Record<string, Preset> = replacementGroups;
diff --git a/lib/config/validation.ts b/lib/config/validation.ts
index 6ee80afd1d..620cbe190d 100644
--- a/lib/config/validation.ts
+++ b/lib/config/validation.ts
@@ -7,7 +7,7 @@ import type {
   RegexManagerTemplates,
 } from '../modules/manager/custom/regex/types';
 import type { CustomManager } from '../modules/manager/custom/types';
-import type { HostRule } from '../types/host-rules';
+import type { HostRule } from '../types';
 import { regEx } from '../util/regex';
 import {
   getRegexPredicate,
@@ -26,15 +26,15 @@ import { migrateConfig } from './migration';
 import { getOptions } from './options';
 import { resolveConfigPresets } from './presets';
 import { supportedDatasources } from './presets/internal/merge-confidence';
-import {
+import type {
   AllowedParents,
-  type RenovateConfig,
-  type RenovateOptions,
-  type StatusCheckKey,
-  type ValidationMessage,
-  type ValidationResult,
-  allowedStatusCheckStrings,
+  RenovateConfig,
+  RenovateOptions,
+  StatusCheckKey,
+  ValidationMessage,
+  ValidationResult,
 } from './types';
+import { allowedStatusCheckStrings } from './types';
 import * as managerValidator from './validation-helpers/managers';
 import * as matchBaseBranchesValidator from './validation-helpers/match-base-branches';
 import * as regexOrGlobValidator from './validation-helpers/regex-glob-matchers';
diff --git a/lib/instrumentation/decorator.ts b/lib/instrumentation/decorator.ts
index 30f8ce6de1..186c1480fa 100644
--- a/lib/instrumentation/decorator.ts
+++ b/lib/instrumentation/decorator.ts
@@ -1,5 +1,6 @@
 import { SpanKind } from '@opentelemetry/api';
-import { Decorator, decorate } from '../util/decorator';
+import type { Decorator } from '../util/decorator';
+import { decorate } from '../util/decorator';
 import type { SpanParameters } from './types';
 import { instrument as instrumentFunc } from '.';
 
diff --git a/lib/instrumentation/index.ts b/lib/instrumentation/index.ts
index 028fe3f741..4f33813c9b 100644
--- a/lib/instrumentation/index.ts
+++ b/lib/instrumentation/index.ts
@@ -10,10 +10,8 @@ import * as api from '@opentelemetry/api';
 import { ProxyTracerProvider, SpanStatusCode } from '@opentelemetry/api';
 import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';
 import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
-import {
-  Instrumentation,
-  registerInstrumentations,
-} from '@opentelemetry/instrumentation';
+import type { Instrumentation } from '@opentelemetry/instrumentation';
+import { registerInstrumentations } from '@opentelemetry/instrumentation';
 import { BunyanInstrumentation } from '@opentelemetry/instrumentation-bunyan';
 import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
 import { Resource } from '@opentelemetry/resources';
diff --git a/lib/instrumentation/reporting.ts b/lib/instrumentation/reporting.ts
index 68952cd513..b6a793b5c8 100644
--- a/lib/instrumentation/reporting.ts
+++ b/lib/instrumentation/reporting.ts
@@ -1,4 +1,5 @@
-import { PutObjectCommand, PutObjectCommandInput } from '@aws-sdk/client-s3';
+import type { PutObjectCommandInput } from '@aws-sdk/client-s3';
+import { PutObjectCommand } from '@aws-sdk/client-s3';
 import is from '@sindresorhus/is';
 import type { RenovateConfig } from '../config/types';
 import { getProblems, logger } from '../logger';
diff --git a/lib/logger/remap.ts b/lib/logger/remap.ts
index ceebba76c1..6d0e23c1d8 100644
--- a/lib/logger/remap.ts
+++ b/lib/logger/remap.ts
@@ -1,8 +1,6 @@
 import type { LogLevelString } from 'bunyan';
-import {
-  StringMatchPredicate,
-  getRegexOrGlobPredicate,
-} from '../util/string-match';
+import type { StringMatchPredicate } from '../util/string-match';
+import { getRegexOrGlobPredicate } from '../util/string-match';
 import type { LogLevelRemap } from './types';
 
 let globalRemaps: LogLevelRemap[] | undefined;
diff --git a/lib/modules/datasource/aws-machine-image/index.spec.ts b/lib/modules/datasource/aws-machine-image/index.spec.ts
index f0c600befd..6cc304ceac 100644
--- a/lib/modules/datasource/aws-machine-image/index.spec.ts
+++ b/lib/modules/datasource/aws-machine-image/index.spec.ts
@@ -1,9 +1,5 @@
-import {
-  DescribeImagesCommand,
-  DescribeImagesResult,
-  EC2Client,
-  Image,
-} from '@aws-sdk/client-ec2';
+import type { DescribeImagesResult, Image } from '@aws-sdk/client-ec2';
+import { DescribeImagesCommand, EC2Client } from '@aws-sdk/client-ec2';
 import { mockClient } from 'aws-sdk-client-mock';
 import { getDigest, getPkgReleases } from '..';
 import { AwsMachineImageDatasource } from '.';
diff --git a/lib/modules/datasource/aws-machine-image/index.ts b/lib/modules/datasource/aws-machine-image/index.ts
index 0867781afc..f069ef5a52 100644
--- a/lib/modules/datasource/aws-machine-image/index.ts
+++ b/lib/modules/datasource/aws-machine-image/index.ts
@@ -1,9 +1,5 @@
-import {
-  DescribeImagesCommand,
-  EC2Client,
-  Filter,
-  Image,
-} from '@aws-sdk/client-ec2';
+import type { Filter, Image } from '@aws-sdk/client-ec2';
+import { DescribeImagesCommand, EC2Client } from '@aws-sdk/client-ec2';
 import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
 import { cache } from '../../../util/cache/package/decorator';
 import * as amazonMachineImageVersioning from '../../versioning/aws-machine-image';
diff --git a/lib/modules/datasource/aws-rds/index.spec.ts b/lib/modules/datasource/aws-rds/index.spec.ts
index 1f263ba8e0..0dd8bed1cb 100644
--- a/lib/modules/datasource/aws-rds/index.spec.ts
+++ b/lib/modules/datasource/aws-rds/index.spec.ts
@@ -1,7 +1,9 @@
-import {
+import type {
   DBEngineVersion,
-  DescribeDBEngineVersionsCommand,
   DescribeDBEngineVersionsCommandOutput,
+} from '@aws-sdk/client-rds';
+import {
+  DescribeDBEngineVersionsCommand,
   RDSClient,
 } from '@aws-sdk/client-rds';
 import { mockClient } from 'aws-sdk-client-mock';
diff --git a/lib/modules/datasource/clojure/index.spec.ts b/lib/modules/datasource/clojure/index.spec.ts
index 0697be3785..cc3a81a06e 100644
--- a/lib/modules/datasource/clojure/index.spec.ts
+++ b/lib/modules/datasource/clojure/index.spec.ts
@@ -1,5 +1,6 @@
 import upath from 'upath';
-import { ReleaseResult, getPkgReleases } from '..';
+import type { ReleaseResult } from '..';
+import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import * as httpMock from '../../../../test/http-mock';
 import * as hostRules from '../../../util/host-rules';
diff --git a/lib/modules/datasource/crate/index.spec.ts b/lib/modules/datasource/crate/index.spec.ts
index 7882cdb87c..c01dd03a0a 100644
--- a/lib/modules/datasource/crate/index.spec.ts
+++ b/lib/modules/datasource/crate/index.spec.ts
@@ -1,7 +1,9 @@
 import { setTimeout } from 'timers/promises';
 import fs from 'fs-extra';
-import _simpleGit, { SimpleGit } from 'simple-git';
-import { DirectoryResult, dir } from 'tmp-promise';
+import type { SimpleGit } from 'simple-git';
+import _simpleGit from 'simple-git';
+import type { DirectoryResult } from 'tmp-promise';
+import { dir } from 'tmp-promise';
 import { dirname, join } from 'upath';
 import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
diff --git a/lib/modules/datasource/docker/dockerhub-cache.spec.ts b/lib/modules/datasource/docker/dockerhub-cache.spec.ts
index 1a97be3488..246863d46f 100644
--- a/lib/modules/datasource/docker/dockerhub-cache.spec.ts
+++ b/lib/modules/datasource/docker/dockerhub-cache.spec.ts
@@ -1,6 +1,7 @@
 import { mocked } from '../../../../test/util';
 import * as _packageCache from '../../../util/cache/package';
-import { DockerHubCache, DockerHubCacheData } from './dockerhub-cache';
+import type { DockerHubCacheData } from './dockerhub-cache';
+import { DockerHubCache } from './dockerhub-cache';
 import type { DockerHubTag } from './schema';
 
 jest.mock('../../../util/cache/package');
diff --git a/lib/modules/datasource/docker/ecr.ts b/lib/modules/datasource/docker/ecr.ts
index 4a2d1be216..fc0981763c 100644
--- a/lib/modules/datasource/docker/ecr.ts
+++ b/lib/modules/datasource/docker/ecr.ts
@@ -1,4 +1,5 @@
-import { ECR, ECRClientConfig } from '@aws-sdk/client-ecr';
+import type { ECRClientConfig } from '@aws-sdk/client-ecr';
+import { ECR } from '@aws-sdk/client-ecr';
 import { logger } from '../../../logger';
 import type { HostRule } from '../../../types';
 import type { HttpError } from '../../../util/http';
diff --git a/lib/modules/datasource/docker/index.spec.ts b/lib/modules/datasource/docker/index.spec.ts
index 0380dbffdb..ce2eb46517 100644
--- a/lib/modules/datasource/docker/index.spec.ts
+++ b/lib/modules/datasource/docker/index.spec.ts
@@ -1,8 +1,5 @@
-import {
-  ECRClient,
-  GetAuthorizationTokenCommand,
-  GetAuthorizationTokenCommandOutput,
-} from '@aws-sdk/client-ecr';
+import type { GetAuthorizationTokenCommandOutput } from '@aws-sdk/client-ecr';
+import { ECRClient, GetAuthorizationTokenCommand } from '@aws-sdk/client-ecr';
 import { mockClient } from 'aws-sdk-client-mock';
 import * as _googleAuth from 'google-auth-library';
 import { mockDeep } from 'jest-mock-extended';
diff --git a/lib/modules/datasource/docker/index.ts b/lib/modules/datasource/docker/index.ts
index f318e3d2c1..66bc164f15 100644
--- a/lib/modules/datasource/docker/index.ts
+++ b/lib/modules/datasource/docker/index.ts
@@ -39,13 +39,12 @@ import {
 } from './common';
 import { DockerHubCache } from './dockerhub-cache';
 import { ecrPublicRegex, ecrRegex, isECRMaxResultsError } from './ecr';
+import type { DistributionManifest, OciImageManifest } from './schema';
 import {
-  DistributionManifest,
   DockerHubTagsPage,
   ManifestJson,
   OciHelmConfig,
   OciImageConfig,
-  OciImageManifest,
 } from './schema';
 
 const defaultConfig = {
diff --git a/lib/modules/datasource/git-refs/index.spec.ts b/lib/modules/datasource/git-refs/index.spec.ts
index 83207d8ccd..f5ff2c55de 100644
--- a/lib/modules/datasource/git-refs/index.spec.ts
+++ b/lib/modules/datasource/git-refs/index.spec.ts
@@ -1,4 +1,5 @@
-import { SimpleGit, simpleGit } from 'simple-git';
+import type { SimpleGit } from 'simple-git';
+import { simpleGit } from 'simple-git';
 import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import { add, clear } from '../../../util/host-rules';
diff --git a/lib/modules/datasource/git-tags/index.spec.ts b/lib/modules/datasource/git-tags/index.spec.ts
index d0b345d905..26370d9b75 100644
--- a/lib/modules/datasource/git-tags/index.spec.ts
+++ b/lib/modules/datasource/git-tags/index.spec.ts
@@ -1,4 +1,5 @@
-import { SimpleGit, simpleGit } from 'simple-git';
+import type { SimpleGit } from 'simple-git';
+import { simpleGit } from 'simple-git';
 import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import { add, clear } from '../../../util/host-rules';
diff --git a/lib/modules/datasource/glasskube-packages/index.ts b/lib/modules/datasource/glasskube-packages/index.ts
index fef07896ed..a289e79682 100644
--- a/lib/modules/datasource/glasskube-packages/index.ts
+++ b/lib/modules/datasource/glasskube-packages/index.ts
@@ -3,9 +3,9 @@ import { joinUrlParts } from '../../../util/url';
 import * as glasskubeVersioning from '../../versioning/glasskube';
 import { Datasource } from '../datasource';
 import type { GetReleasesConfig, ReleaseResult } from '../types';
+import type { GlasskubePackageVersions } from './schema';
 import {
   GlasskubePackageManifestYaml,
-  GlasskubePackageVersions,
   GlasskubePackageVersionsYaml,
 } from './schema';
 
diff --git a/lib/modules/datasource/gradle-version/index.spec.ts b/lib/modules/datasource/gradle-version/index.spec.ts
index 7db80457e1..8bcb275fdf 100644
--- a/lib/modules/datasource/gradle-version/index.spec.ts
+++ b/lib/modules/datasource/gradle-version/index.spec.ts
@@ -1,4 +1,5 @@
-import { GetPkgReleasesConfig, GetReleasesConfig, getPkgReleases } from '..';
+import type { GetPkgReleasesConfig, GetReleasesConfig } from '..';
+import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import * as httpMock from '../../../../test/http-mock';
 import { partial } from '../../../../test/util';
diff --git a/lib/modules/datasource/maven/index.spec.ts b/lib/modules/datasource/maven/index.spec.ts
index d51f6f1f02..0f818c4fa7 100644
--- a/lib/modules/datasource/maven/index.spec.ts
+++ b/lib/modules/datasource/maven/index.spec.ts
@@ -1,5 +1,6 @@
 import { GoogleAuth as _googleAuth } from 'google-auth-library';
-import { ReleaseResult, getPkgReleases } from '..';
+import type { ReleaseResult } from '..';
+import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import * as httpMock from '../../../../test/http-mock';
 import { mocked } from '../../../../test/util';
diff --git a/lib/modules/datasource/maven/s3.spec.ts b/lib/modules/datasource/maven/s3.spec.ts
index 68a88161a4..f5c37a9a5b 100644
--- a/lib/modules/datasource/maven/s3.spec.ts
+++ b/lib/modules/datasource/maven/s3.spec.ts
@@ -6,7 +6,8 @@ import {
 } from '@aws-sdk/client-s3';
 import { mockClient } from 'aws-sdk-client-mock';
 import { DateTime } from 'luxon';
-import { ReleaseResult, getPkgReleases } from '..';
+import type { ReleaseResult } from '..';
+import { getPkgReleases } from '..';
 import { Fixtures } from '../../../../test/fixtures';
 import { logger } from '../../../logger';
 import * as hostRules from '../../../util/host-rules';
diff --git a/lib/modules/datasource/nuget/v2.ts b/lib/modules/datasource/nuget/v2.ts
index 618cd30c12..48c89d34b4 100644
--- a/lib/modules/datasource/nuget/v2.ts
+++ b/lib/modules/datasource/nuget/v2.ts
@@ -1,4 +1,5 @@
-import { XmlDocument, XmlElement } from 'xmldoc';
+import type { XmlElement } from 'xmldoc';
+import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import type { Http } from '../../../util/http';
 import { regEx } from '../../../util/regex';
diff --git a/lib/modules/datasource/nuget/v3.ts b/lib/modules/datasource/nuget/v3.ts
index a0e06db3de..f48781cdc9 100644
--- a/lib/modules/datasource/nuget/v3.ts
+++ b/lib/modules/datasource/nuget/v3.ts
@@ -9,7 +9,8 @@ import * as packageCache from '../../../util/cache/package';
 import { cache } from '../../../util/cache/package/decorator';
 import * as fs from '../../../util/fs';
 import { ensureCacheDir } from '../../../util/fs';
-import { Http, HttpError } from '../../../util/http';
+import type { Http } from '../../../util/http';
+import { HttpError } from '../../../util/http';
 import * as p from '../../../util/promises';
 import { regEx } from '../../../util/regex';
 import { ensureTrailingSlash } from '../../../util/url';
diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts
index f427929c1e..f54129488f 100644
--- a/lib/modules/datasource/packagist/index.ts
+++ b/lib/modules/datasource/packagist/index.ts
@@ -10,10 +10,10 @@ import { replaceUrlPath, resolveBaseUrl } from '../../../util/url';
 import * as composerVersioning from '../../versioning/composer';
 import { Datasource } from '../datasource';
 import type { GetReleasesConfig, ReleaseResult } from '../types';
+import type { RegistryFile } from './schema';
 import {
   PackagesResponse,
   PackagistFile,
-  RegistryFile,
   RegistryMeta,
   extractDepReleases,
   parsePackagesResponses,
diff --git a/lib/modules/datasource/rubygems/metadata-cache.ts b/lib/modules/datasource/rubygems/metadata-cache.ts
index 28e66cc29e..09c3d6d069 100644
--- a/lib/modules/datasource/rubygems/metadata-cache.ts
+++ b/lib/modules/datasource/rubygems/metadata-cache.ts
@@ -2,7 +2,8 @@ import { logger } from '../../../logger';
 import * as packageCache from '../../../util/cache/package';
 import { toSha256 } from '../../../util/hash';
 import type { Http } from '../../../util/http';
-import { AsyncResult, Result } from '../../../util/result';
+import type { AsyncResult } from '../../../util/result';
+import { Result } from '../../../util/result';
 import { parseUrl } from '../../../util/url';
 import type { ReleaseResult } from '../types';
 import { getV1Releases } from './common';
diff --git a/lib/modules/datasource/rubygems/versions-endpoint-cache.ts b/lib/modules/datasource/rubygems/versions-endpoint-cache.ts
index 2427084841..5a6ca75ff8 100644
--- a/lib/modules/datasource/rubygems/versions-endpoint-cache.ts
+++ b/lib/modules/datasource/rubygems/versions-endpoint-cache.ts
@@ -1,7 +1,8 @@
 import { z } from 'zod';
 import { logger } from '../../../logger';
 import { getElapsedMinutes } from '../../../util/date';
-import { Http, HttpError } from '../../../util/http';
+import type { Http } from '../../../util/http';
+import { HttpError } from '../../../util/http';
 import type { HttpOptions } from '../../../util/http/types';
 import { newlineRegex } from '../../../util/regex';
 import { Result } from '../../../util/result';
diff --git a/lib/modules/datasource/unity3d/index.ts b/lib/modules/datasource/unity3d/index.ts
index 24298d4a6c..a54bbb03e6 100644
--- a/lib/modules/datasource/unity3d/index.ts
+++ b/lib/modules/datasource/unity3d/index.ts
@@ -1,4 +1,5 @@
-import { XmlDocument, XmlElement } from 'xmldoc';
+import type { XmlElement } from 'xmldoc';
+import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { cache } from '../../../util/cache/package/decorator';
 import * as Unity3dVersioning from '../../versioning/unity3d';
diff --git a/lib/modules/manager/asdf/index.spec.ts b/lib/modules/manager/asdf/index.spec.ts
index 45b06fe83d..63a42e0fc3 100644
--- a/lib/modules/manager/asdf/index.spec.ts
+++ b/lib/modules/manager/asdf/index.spec.ts
@@ -1,4 +1,5 @@
-import { StaticTooling, upgradeableTooling } from './upgradeable-tooling';
+import type { StaticTooling } from './upgradeable-tooling';
+import { upgradeableTooling } from './upgradeable-tooling';
 import { extractPackageFile, supportedDatasources } from '.';
 
 describe('modules/manager/asdf/index', () => {
diff --git a/lib/modules/manager/azure-pipelines/extract.ts b/lib/modules/manager/azure-pipelines/extract.ts
index 7a814f0100..7a7b3d8596 100644
--- a/lib/modules/manager/azure-pipelines/extract.ts
+++ b/lib/modules/manager/azure-pipelines/extract.ts
@@ -11,9 +11,8 @@ import type {
   PackageDependency,
   PackageFileContent,
 } from '../types';
-import {
+import type {
   AzurePipelines,
-  AzurePipelinesYaml,
   Container,
   Deploy,
   Deployment,
@@ -22,6 +21,7 @@ import {
   Repository,
   Step,
 } from './schema';
+import { AzurePipelinesYaml } from './schema';
 
 const AzurePipelinesTaskRegex = regEx(/^(?<name>[^@]+)@(?<version>.*)$/);
 
diff --git a/lib/modules/manager/bazel-module/rules.spec.ts b/lib/modules/manager/bazel-module/rules.spec.ts
index 146245adbd..048471c650 100644
--- a/lib/modules/manager/bazel-module/rules.spec.ts
+++ b/lib/modules/manager/bazel-module/rules.spec.ts
@@ -3,11 +3,13 @@ import { BazelDatasource } from '../../datasource/bazel';
 import { GithubTagsDatasource } from '../../datasource/github-tags';
 import type { PackageDependency } from '../types';
 import * as fragments from './fragments';
-import {
+import type {
   BasePackageDep,
   BazelModulePackageDep,
   MergePackageDep,
   OverridePackageDep,
+} from './rules';
+import {
   RuleToBazelModulePackageDep,
   bazelModulePackageDepToPackageDependency,
   processModulePkgDeps,
diff --git a/lib/modules/manager/bazel/parser.ts b/lib/modules/manager/bazel/parser.ts
index 072563de75..cec40f5d69 100644
--- a/lib/modules/manager/bazel/parser.ts
+++ b/lib/modules/manager/bazel/parser.ts
@@ -1,4 +1,5 @@
-import { lang, lexer, parser, query as q } from 'good-enough-parser';
+import type { lexer, parser } from 'good-enough-parser';
+import { lang, query as q } from 'good-enough-parser';
 import { logger } from '../../../logger';
 import * as memCache from '../../../util/cache/memory';
 import { hash } from '../../../util/hash';
diff --git a/lib/modules/manager/cargo/locked-version.ts b/lib/modules/manager/cargo/locked-version.ts
index 13ea7ef85d..bffb32ad00 100644
--- a/lib/modules/manager/cargo/locked-version.ts
+++ b/lib/modules/manager/cargo/locked-version.ts
@@ -1,7 +1,8 @@
 import { logger } from '../../../logger';
 import { coerceArray } from '../../../util/array';
 import { readLocalFile } from '../../../util/fs';
-import { CargoLockSchema, CargoLockSchemaToml } from './schema';
+import type { CargoLockSchema } from './schema';
+import { CargoLockSchemaToml } from './schema';
 
 export async function extractLockFileVersions(
   lockFilePath: string,
diff --git a/lib/modules/manager/cargo/update.ts b/lib/modules/manager/cargo/update.ts
index a668740a25..364df76a8a 100644
--- a/lib/modules/manager/cargo/update.ts
+++ b/lib/modules/manager/cargo/update.ts
@@ -1,4 +1,5 @@
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { logger } from '../../../logger';
 import { regEx } from '../../../util/regex';
 import type { BumpPackageVersionResult } from '../types';
diff --git a/lib/modules/manager/cpanfile/language.ts b/lib/modules/manager/cpanfile/language.ts
index 9a7f00a31d..8f399635d6 100644
--- a/lib/modules/manager/cpanfile/language.ts
+++ b/lib/modules/manager/cpanfile/language.ts
@@ -1,4 +1,5 @@
-import { lexer as l, lang, parser as p } from 'good-enough-parser';
+import type { lexer as l, parser as p } from 'good-enough-parser';
+import { lang } from 'good-enough-parser';
 
 /**
  * @see https://perldoc.perl.org/perldata#Scalar-value-constructors
diff --git a/lib/modules/manager/git-submodules/extract.spec.ts b/lib/modules/manager/git-submodules/extract.spec.ts
index b268c5f685..bee65e98a4 100644
--- a/lib/modules/manager/git-submodules/extract.spec.ts
+++ b/lib/modules/manager/git-submodules/extract.spec.ts
@@ -1,6 +1,7 @@
 import is from '@sindresorhus/is';
 import { mock } from 'jest-mock-extended';
-import { Response, SimpleGit, SimpleGitFactory, simpleGit } from 'simple-git';
+import type { Response, SimpleGit, SimpleGitFactory } from 'simple-git';
+import { simpleGit } from 'simple-git';
 import { GlobalConfig } from '../../../config/global';
 import * as hostRules from '../../../util/host-rules';
 import { extractPackageFile } from '.';
diff --git a/lib/modules/manager/git-submodules/extract.ts b/lib/modules/manager/git-submodules/extract.ts
index 5bb6daea00..fce3e496a7 100644
--- a/lib/modules/manager/git-submodules/extract.ts
+++ b/lib/modules/manager/git-submodules/extract.ts
@@ -1,5 +1,6 @@
 import URL from 'node:url';
-import Git, { SimpleGit } from 'simple-git';
+import type { SimpleGit } from 'simple-git';
+import Git from 'simple-git';
 import upath from 'upath';
 import { GlobalConfig } from '../../../config/global';
 import { logger } from '../../../logger';
diff --git a/lib/modules/manager/git-submodules/update.spec.ts b/lib/modules/manager/git-submodules/update.spec.ts
index dc9b026573..3013a6b239 100644
--- a/lib/modules/manager/git-submodules/update.spec.ts
+++ b/lib/modules/manager/git-submodules/update.spec.ts
@@ -1,6 +1,8 @@
 import { mock } from 'jest-mock-extended';
-import { SimpleGit, simpleGit } from 'simple-git';
-import { DirectoryResult, dir } from 'tmp-promise';
+import type { SimpleGit } from 'simple-git';
+import { simpleGit } from 'simple-git';
+import type { DirectoryResult } from 'tmp-promise';
+import { dir } from 'tmp-promise';
 import { join } from 'upath';
 import { fs } from '../../../../test/util';
 import { GlobalConfig } from '../../../config/global';
diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts
index 08114ff856..246efcfa2a 100644
--- a/lib/modules/manager/gradle/parser/assignments.ts
+++ b/lib/modules/manager/gradle/parser/assignments.ts
@@ -1,4 +1,5 @@
-import { parser, query as q } from 'good-enough-parser';
+import type { parser } from 'good-enough-parser';
+import { query as q } from 'good-enough-parser';
 import { regEx } from '../../../../util/regex';
 import type { Ctx } from '../types';
 import {
diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts
index 3d9d541777..997ac4f42b 100644
--- a/lib/modules/manager/gradle/parser/common.ts
+++ b/lib/modules/manager/gradle/parser/common.ts
@@ -1,4 +1,5 @@
-import { lexer, parser, query as q } from 'good-enough-parser';
+import type { lexer, parser } from 'good-enough-parser';
+import { query as q } from 'good-enough-parser';
 import { clone } from '../../../../util/clone';
 import { regEx } from '../../../../util/regex';
 import type {
diff --git a/lib/modules/manager/gradle/parser/objects.ts b/lib/modules/manager/gradle/parser/objects.ts
index 7334b7186b..337ca415ec 100644
--- a/lib/modules/manager/gradle/parser/objects.ts
+++ b/lib/modules/manager/gradle/parser/objects.ts
@@ -1,4 +1,5 @@
-import { parser, query as q } from 'good-enough-parser';
+import type { parser } from 'good-enough-parser';
+import { query as q } from 'good-enough-parser';
 import type { Ctx } from '../types';
 import { qKotlinMultiMapOfVarAssignment } from './assignments';
 import {
diff --git a/lib/modules/manager/helmv3/artifacts.spec.ts b/lib/modules/manager/helmv3/artifacts.spec.ts
index 3ce9ba21de..ed8c25d3df 100644
--- a/lib/modules/manager/helmv3/artifacts.spec.ts
+++ b/lib/modules/manager/helmv3/artifacts.spec.ts
@@ -1,8 +1,5 @@
-import {
-  ECRClient,
-  GetAuthorizationTokenCommand,
-  GetAuthorizationTokenCommandOutput,
-} from '@aws-sdk/client-ecr';
+import type { GetAuthorizationTokenCommandOutput } from '@aws-sdk/client-ecr';
+import { ECRClient, GetAuthorizationTokenCommand } from '@aws-sdk/client-ecr';
 import { mockClient } from 'aws-sdk-client-mock';
 import { mockDeep } from 'jest-mock-extended';
 import { join } from 'upath';
diff --git a/lib/modules/manager/helmv3/update.ts b/lib/modules/manager/helmv3/update.ts
index 3a26d0e5d4..dc16fcccc6 100644
--- a/lib/modules/manager/helmv3/update.ts
+++ b/lib/modules/manager/helmv3/update.ts
@@ -1,4 +1,5 @@
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { logger } from '../../../logger';
 import { regEx } from '../../../util/regex';
 import type { BumpPackageVersionResult } from '../types';
diff --git a/lib/modules/manager/maven/extract.ts b/lib/modules/manager/maven/extract.ts
index d0c43112f0..a46e485252 100644
--- a/lib/modules/manager/maven/extract.ts
+++ b/lib/modules/manager/maven/extract.ts
@@ -1,6 +1,7 @@
 import is from '@sindresorhus/is';
 import upath from 'upath';
-import { XmlDocument, XmlElement } from 'xmldoc';
+import type { XmlElement } from 'xmldoc';
+import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { readLocalFile } from '../../../util/fs';
 import { regEx } from '../../../util/regex';
diff --git a/lib/modules/manager/maven/update.ts b/lib/modules/manager/maven/update.ts
index 115dd6b066..b22261c0a8 100644
--- a/lib/modules/manager/maven/update.ts
+++ b/lib/modules/manager/maven/update.ts
@@ -1,5 +1,6 @@
 import is from '@sindresorhus/is';
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { replaceAt } from '../../../util/string';
diff --git a/lib/modules/manager/mise/extract.ts b/lib/modules/manager/mise/extract.ts
index 3828795d84..9aa41b16c1 100644
--- a/lib/modules/manager/mise/extract.ts
+++ b/lib/modules/manager/mise/extract.ts
@@ -3,11 +3,8 @@ import { logger } from '../../../logger';
 import type { ToolingConfig } from '../asdf/upgradeable-tooling';
 import type { PackageDependency, PackageFileContent } from '../types';
 import type { MiseToolSchema } from './schema';
-import {
-  ToolingDefinition,
-  asdfTooling,
-  miseTooling,
-} from './upgradeable-tooling';
+import type { ToolingDefinition } from './upgradeable-tooling';
+import { asdfTooling, miseTooling } from './upgradeable-tooling';
 import { parseTomlFile } from './utils';
 
 export function extractPackageFile(
diff --git a/lib/modules/manager/mise/upgradeable-tooling.ts b/lib/modules/manager/mise/upgradeable-tooling.ts
index f13a4c6736..5664b2ee67 100644
--- a/lib/modules/manager/mise/upgradeable-tooling.ts
+++ b/lib/modules/manager/mise/upgradeable-tooling.ts
@@ -5,7 +5,8 @@ import { NodeVersionDatasource } from '../../datasource/node-version';
 import { RubyVersionDatasource } from '../../datasource/ruby-version';
 import * as regexVersioning from '../../versioning/regex';
 import * as semverVersioning from '../../versioning/semver';
-import { ToolingConfig, upgradeableTooling } from '../asdf/upgradeable-tooling';
+import type { ToolingConfig } from '../asdf/upgradeable-tooling';
+import { upgradeableTooling } from '../asdf/upgradeable-tooling';
 
 export interface ToolingDefinition {
   config: ToolingConfig;
diff --git a/lib/modules/manager/mise/utils.ts b/lib/modules/manager/mise/utils.ts
index 8ca8a4c63d..75a5cbf9b9 100644
--- a/lib/modules/manager/mise/utils.ts
+++ b/lib/modules/manager/mise/utils.ts
@@ -1,5 +1,6 @@
 import { logger } from '../../../logger';
-import { MiseFileSchema, MiseFileSchemaToml } from './schema';
+import type { MiseFileSchema } from './schema';
+import { MiseFileSchemaToml } from './schema';
 
 export function parseTomlFile(
   content: string,
diff --git a/lib/modules/manager/npm/extract/index.ts b/lib/modules/manager/npm/extract/index.ts
index 9d14c78ad6..0b9fbba906 100644
--- a/lib/modules/manager/npm/extract/index.ts
+++ b/lib/modules/manager/npm/extract/index.ts
@@ -20,8 +20,8 @@ import { extractPackageJson } from './common/package-file';
 import { postExtract } from './post';
 import type { NpmPackage } from './types';
 import { isZeroInstall } from './yarn';
+import type { YarnConfig } from './yarnrc';
 import {
-  YarnConfig,
   loadConfigFromLegacyYarnrc,
   loadConfigFromYarnrcYml,
   resolveRegistryUrl,
diff --git a/lib/modules/manager/npm/post-update/utils.ts b/lib/modules/manager/npm/post-update/utils.ts
index 6b3e246d11..3df4cc0e16 100644
--- a/lib/modules/manager/npm/post-update/utils.ts
+++ b/lib/modules/manager/npm/post-update/utils.ts
@@ -3,7 +3,8 @@ import upath from 'upath';
 import { logger } from '../../../../logger';
 import { readLocalFile } from '../../../../util/fs';
 import { Lazy } from '../../../../util/lazy';
-import { PackageJson, PackageJsonSchema } from '../schema';
+import type { PackageJsonSchema } from '../schema';
+import { PackageJson } from '../schema';
 
 export function lazyLoadPackageJson(
   lockFileDir: string,
diff --git a/lib/modules/manager/npm/post-update/yarn.spec.ts b/lib/modules/manager/npm/post-update/yarn.spec.ts
index d1e01dc27a..2b2257dc75 100644
--- a/lib/modules/manager/npm/post-update/yarn.spec.ts
+++ b/lib/modules/manager/npm/post-update/yarn.spec.ts
@@ -1,7 +1,7 @@
 import fs from 'fs-extra';
 import { mockDeep } from 'jest-mock-extended';
+import type { ExecSnapshots } from '../../../../../test/exec-util';
 import {
-  ExecSnapshots,
   envMock,
   mockExecAll,
   mockExecSequence,
diff --git a/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts b/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts
index b1d8778880..18fc5e9091 100644
--- a/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts
+++ b/lib/modules/manager/npm/update/locked-dependency/common/parent-version.ts
@@ -1,9 +1,9 @@
 import { logger } from '../../../../../../logger';
-import {
+import type {
   GetPkgReleasesConfig,
   ReleaseResult,
-  getPkgReleases,
 } from '../../../../../datasource';
+import { getPkgReleases } from '../../../../../datasource';
 import { api as semver } from '../../../../../versioning/npm';
 
 const pkgCache = new Map<string, Promise<ReleaseResult | null>>();
diff --git a/lib/modules/manager/npm/update/package-version/index.ts b/lib/modules/manager/npm/update/package-version/index.ts
index 654e2f8b6f..d40c34be61 100644
--- a/lib/modules/manager/npm/update/package-version/index.ts
+++ b/lib/modules/manager/npm/update/package-version/index.ts
@@ -1,4 +1,5 @@
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { logger } from '../../../../../logger';
 import { regEx } from '../../../../../util/regex';
 import type { BumpPackageVersionResult } from '../../../types';
diff --git a/lib/modules/manager/nuget/extract.ts b/lib/modules/manager/nuget/extract.ts
index be2ae5fe88..19961664e4 100644
--- a/lib/modules/manager/nuget/extract.ts
+++ b/lib/modules/manager/nuget/extract.ts
@@ -1,5 +1,6 @@
 import is from '@sindresorhus/is';
-import { XmlDocument, XmlElement, XmlNode } from 'xmldoc';
+import type { XmlElement, XmlNode } from 'xmldoc';
+import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { getSiblingFileName, localPathExists } from '../../../util/fs';
 import { hasKey } from '../../../util/object';
diff --git a/lib/modules/manager/nuget/update.ts b/lib/modules/manager/nuget/update.ts
index 91a3521b0c..b04d6830ff 100644
--- a/lib/modules/manager/nuget/update.ts
+++ b/lib/modules/manager/nuget/update.ts
@@ -1,4 +1,5 @@
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { replaceAt } from '../../../util/string';
diff --git a/lib/modules/manager/nuget/util.ts b/lib/modules/manager/nuget/util.ts
index 54cf05773a..38126468e4 100644
--- a/lib/modules/manager/nuget/util.ts
+++ b/lib/modules/manager/nuget/util.ts
@@ -1,5 +1,6 @@
 import upath from 'upath';
-import { XmlDocument, XmlElement } from 'xmldoc';
+import type { XmlElement } from 'xmldoc';
+import { XmlDocument } from 'xmldoc';
 import { logger } from '../../../logger';
 import { findUpLocal, readLocalFile } from '../../../util/fs';
 import { minimatch } from '../../../util/minimatch';
diff --git a/lib/modules/manager/pep621/utils.ts b/lib/modules/manager/pep621/utils.ts
index dcc3bb8cc2..03c5f39b54 100644
--- a/lib/modules/manager/pep621/utils.ts
+++ b/lib/modules/manager/pep621/utils.ts
@@ -5,7 +5,8 @@ import { parse as parseToml } from '../../../util/toml';
 import { PypiDatasource } from '../../datasource/pypi';
 import { normalizePythonDepName } from '../../datasource/pypi/common';
 import type { PackageDependency } from '../types';
-import { PyProject, PyProjectSchema } from './schema';
+import type { PyProject } from './schema';
+import { PyProjectSchema } from './schema';
 import type { Pep508ParseResult } from './types';
 
 const pep508Regex = regEx(
diff --git a/lib/modules/manager/pip_setup/extract.ts b/lib/modules/manager/pip_setup/extract.ts
index d1bb84626b..c2b362f5f5 100644
--- a/lib/modules/manager/pip_setup/extract.ts
+++ b/lib/modules/manager/pip_setup/extract.ts
@@ -1,5 +1,6 @@
 import { RANGE_PATTERN } from '@renovatebot/pep440';
-import { lang, lexer, parser, query as q } from 'good-enough-parser';
+import type { lexer, parser } from 'good-enough-parser';
+import { lang, query as q } from 'good-enough-parser';
 import { regEx } from '../../../util/regex';
 import { PypiDatasource } from '../../datasource/pypi';
 import { normalizePythonDepName } from '../../datasource/pypi/common';
diff --git a/lib/modules/manager/pipenv/artifacts.spec.ts b/lib/modules/manager/pipenv/artifacts.spec.ts
index 5cdb047e91..654dc75897 100644
--- a/lib/modules/manager/pipenv/artifacts.spec.ts
+++ b/lib/modules/manager/pipenv/artifacts.spec.ts
@@ -24,7 +24,7 @@ import {
   extractEnvironmentVariableName,
   getMatchingHostRule,
 } from './artifacts';
-import { PipfileLock } from './types';
+import type { PipfileLock } from './types';
 import { updateArtifacts } from '.';
 
 const datasource = mocked(_datasource);
diff --git a/lib/modules/manager/poetry/schema.ts b/lib/modules/manager/poetry/schema.ts
index 9617894a2f..687d4ac4bd 100644
--- a/lib/modules/manager/poetry/schema.ts
+++ b/lib/modules/manager/poetry/schema.ts
@@ -1,4 +1,5 @@
-import { ZodEffects, ZodType, ZodTypeDef, z } from 'zod';
+import type { ZodEffects, ZodType, ZodTypeDef } from 'zod';
+import { z } from 'zod';
 import { logger } from '../../../logger';
 import { parseGitUrl } from '../../../util/git/url';
 import { regEx } from '../../../util/regex';
diff --git a/lib/modules/manager/pub/utils.ts b/lib/modules/manager/pub/utils.ts
index a0643e9728..4453319bd9 100644
--- a/lib/modules/manager/pub/utils.ts
+++ b/lib/modules/manager/pub/utils.ts
@@ -1,10 +1,6 @@
 import { logger } from '../../../logger';
-import {
-  PubspecLockSchema,
-  PubspecLockYaml,
-  PubspecSchema,
-  PubspecYaml,
-} from './schema';
+import type { PubspecLockSchema, PubspecSchema } from './schema';
+import { PubspecLockYaml, PubspecYaml } from './schema';
 
 export function parsePubspec(
   fileName: string,
diff --git a/lib/modules/manager/sbt/update.ts b/lib/modules/manager/sbt/update.ts
index df85b8ce5b..6c591b7916 100644
--- a/lib/modules/manager/sbt/update.ts
+++ b/lib/modules/manager/sbt/update.ts
@@ -1,4 +1,5 @@
-import semver, { ReleaseType } from 'semver';
+import type { ReleaseType } from 'semver';
+import semver from 'semver';
 import { logger } from '../../../logger';
 import { regEx } from '../../../util/regex';
 import type { BumpPackageVersionResult } from '../types';
diff --git a/lib/modules/manager/terraform/lockfile/hash.spec.ts b/lib/modules/manager/terraform/lockfile/hash.spec.ts
index b51609c99e..bde55b218e 100644
--- a/lib/modules/manager/terraform/lockfile/hash.spec.ts
+++ b/lib/modules/manager/terraform/lockfile/hash.spec.ts
@@ -1,5 +1,6 @@
 import { createReadStream } from 'node:fs';
-import { DirectoryResult, dir } from 'tmp-promise';
+import type { DirectoryResult } from 'tmp-promise';
+import { dir } from 'tmp-promise';
 import upath from 'upath';
 import { Fixtures } from '../../../../../test/fixtures';
 import * as httpMock from '../../../../../test/http-mock';
diff --git a/lib/modules/manager/terraform/lockfile/index.ts b/lib/modules/manager/terraform/lockfile/index.ts
index c88cb5c7e1..9e268f21c3 100644
--- a/lib/modules/manager/terraform/lockfile/index.ts
+++ b/lib/modules/manager/terraform/lockfile/index.ts
@@ -2,7 +2,8 @@ import is from '@sindresorhus/is';
 import { logger } from '../../../../logger';
 import * as p from '../../../../util/promises';
 import { escapeRegExp, regEx } from '../../../../util/regex';
-import { GetPkgReleasesConfig, getPkgReleases } from '../../../datasource';
+import type { GetPkgReleasesConfig } from '../../../datasource';
+import { getPkgReleases } from '../../../datasource';
 import { get as getVersioning } from '../../../versioning';
 import type {
   UpdateArtifact,
diff --git a/lib/modules/manager/vendir/extract.ts b/lib/modules/manager/vendir/extract.ts
index 9f6d3cc63b..30490df8d8 100644
--- a/lib/modules/manager/vendir/extract.ts
+++ b/lib/modules/manager/vendir/extract.ts
@@ -11,13 +11,13 @@ import type {
   PackageDependency,
   PackageFileContent,
 } from '../types';
-import {
+import type {
   GitRefDefinition,
   GithubReleaseDefinition,
   HelmChartDefinition,
-  Vendir,
   VendirDefinition,
 } from './schema';
+import { Vendir } from './schema';
 
 export function extractHelmChart(
   helmChart: HelmChartDefinition,
diff --git a/lib/modules/platform/azure/azure-helper.ts b/lib/modules/platform/azure/azure-helper.ts
index f9dc89ff2f..3fb4602d55 100644
--- a/lib/modules/platform/azure/azure-helper.ts
+++ b/lib/modules/platform/azure/azure-helper.ts
@@ -1,9 +1,9 @@
 import type { WebApiTeam } from 'azure-devops-node-api/interfaces/CoreInterfaces.js';
-import {
+import type {
   GitCommit,
-  GitPullRequestMergeStrategy,
   GitRef,
 } from 'azure-devops-node-api/interfaces/GitInterfaces.js';
+import { GitPullRequestMergeStrategy } from 'azure-devops-node-api/interfaces/GitInterfaces.js';
 import { logger } from '../../../logger';
 import { streamToString } from '../../../util/streams';
 import { getNewBranchName } from '../util';
diff --git a/lib/modules/platform/azure/index.spec.ts b/lib/modules/platform/azure/index.spec.ts
index 7f4257d8cc..bfeb72ebd0 100644
--- a/lib/modules/platform/azure/index.spec.ts
+++ b/lib/modules/platform/azure/index.spec.ts
@@ -1,8 +1,8 @@
 import { Readable } from 'node:stream';
 import is from '@sindresorhus/is';
 import type { IGitApi } from 'azure-devops-node-api/GitApi';
+import type { GitPullRequest } from 'azure-devops-node-api/interfaces/GitInterfaces.js';
 import {
-  GitPullRequest,
   GitPullRequestMergeStrategy,
   GitStatusState,
   PullRequestStatus,
diff --git a/lib/modules/platform/azure/index.ts b/lib/modules/platform/azure/index.ts
index 80f85036f7..13356c9211 100644
--- a/lib/modules/platform/azure/index.ts
+++ b/lib/modules/platform/azure/index.ts
@@ -1,12 +1,14 @@
 import { setTimeout } from 'timers/promises';
 import is from '@sindresorhus/is';
-import {
+import type {
   GitPullRequest,
   GitPullRequestCommentThread,
-  GitPullRequestMergeStrategy,
   GitStatus,
-  GitStatusState,
   GitVersionDescriptor,
+} from 'azure-devops-node-api/interfaces/GitInterfaces.js';
+import {
+  GitPullRequestMergeStrategy,
+  GitStatusState,
   PullRequestStatus,
 } from 'azure-devops-node-api/interfaces/GitInterfaces.js';
 import {
@@ -43,7 +45,8 @@ import { getNewBranchName, repoFingerprint } from '../util';
 import { smartTruncate } from '../utils/pr-body';
 import * as azureApi from './azure-got-wrapper';
 import * as azureHelper from './azure-helper';
-import { AzurePr, AzurePrVote } from './types';
+import type { AzurePr } from './types';
+import { AzurePrVote } from './types';
 import {
   getBranchNameWithoutRefsheadsPrefix,
   getGitStatusContextCombinedName,
diff --git a/lib/modules/platform/azure/util.ts b/lib/modules/platform/azure/util.ts
index 9ca3563961..74ca2ab7d2 100644
--- a/lib/modules/platform/azure/util.ts
+++ b/lib/modules/platform/azure/util.ts
@@ -1,8 +1,10 @@
-import {
+import type {
   GitPullRequest,
-  GitPullRequestMergeStrategy,
   GitRepository,
   GitStatusContext,
+} from 'azure-devops-node-api/interfaces/GitInterfaces.js';
+import {
+  GitPullRequestMergeStrategy,
   PullRequestStatus,
 } from 'azure-devops-node-api/interfaces/GitInterfaces.js';
 import type { MergeStrategy } from '../../../config/types';
diff --git a/lib/modules/platform/codecommit/codecommit-client.ts b/lib/modules/platform/codecommit/codecommit-client.ts
index 4880d4d11d..7951075b29 100644
--- a/lib/modules/platform/codecommit/codecommit-client.ts
+++ b/lib/modules/platform/codecommit/codecommit-client.ts
@@ -1,49 +1,51 @@
-import {
-  CodeCommitClient,
-  CreatePullRequestApprovalRuleCommand,
+import type {
   CreatePullRequestApprovalRuleInput,
   CreatePullRequestApprovalRuleOutput,
-  CreatePullRequestCommand,
   CreatePullRequestInput,
   CreatePullRequestOutput,
-  DeleteCommentContentCommand,
   DeleteCommentContentInput,
   DeleteCommentContentOutput,
-  GetCommentsForPullRequestCommand,
   GetCommentsForPullRequestInput,
   GetCommentsForPullRequestOutput,
-  GetFileCommand,
   GetFileInput,
   GetFileOutput,
-  GetPullRequestCommand,
   GetPullRequestInput,
   GetPullRequestOutput,
-  GetRepositoryCommand,
   GetRepositoryInput,
   GetRepositoryOutput,
-  ListPullRequestsCommand,
   ListPullRequestsInput,
   ListPullRequestsOutput,
-  ListRepositoriesCommand,
   ListRepositoriesInput,
   ListRepositoriesOutput,
-  PostCommentForPullRequestCommand,
   PostCommentForPullRequestInput,
   PostCommentForPullRequestOutput,
-  PullRequestStatusEnum,
-  UpdateCommentCommand,
   UpdateCommentInput,
   UpdateCommentOutput,
-  UpdatePullRequestDescriptionCommand,
   UpdatePullRequestDescriptionInput,
   UpdatePullRequestDescriptionOutput,
-  UpdatePullRequestStatusCommand,
   UpdatePullRequestStatusInput,
   UpdatePullRequestStatusOutput,
-  UpdatePullRequestTitleCommand,
   UpdatePullRequestTitleInput,
   UpdatePullRequestTitleOutput,
 } from '@aws-sdk/client-codecommit';
+import {
+  CodeCommitClient,
+  CreatePullRequestApprovalRuleCommand,
+  CreatePullRequestCommand,
+  DeleteCommentContentCommand,
+  GetCommentsForPullRequestCommand,
+  GetFileCommand,
+  GetPullRequestCommand,
+  GetRepositoryCommand,
+  ListPullRequestsCommand,
+  ListRepositoriesCommand,
+  PostCommentForPullRequestCommand,
+  PullRequestStatusEnum,
+  UpdateCommentCommand,
+  UpdatePullRequestDescriptionCommand,
+  UpdatePullRequestStatusCommand,
+  UpdatePullRequestTitleCommand,
+} from '@aws-sdk/client-codecommit';
 import type { RepositoryMetadata } from '@aws-sdk/client-codecommit/dist-types/models/models_0';
 import is from '@sindresorhus/is';
 import * as aws4 from 'aws4';
diff --git a/lib/modules/platform/codecommit/index.spec.ts b/lib/modules/platform/codecommit/index.spec.ts
index e249c401b2..75ff969775 100644
--- a/lib/modules/platform/codecommit/index.spec.ts
+++ b/lib/modules/platform/codecommit/index.spec.ts
@@ -27,7 +27,8 @@ import {
 import * as git from '../../../util/git';
 import type { Platform } from '../types';
 import { getCodeCommitUrl } from './codecommit-client';
-import { CodeCommitPr, config } from './index';
+import type { CodeCommitPr } from './index';
+import { config } from './index';
 
 const codeCommitClient = mockClient(CodeCommitClient);
 
diff --git a/lib/modules/platform/codecommit/index.ts b/lib/modules/platform/codecommit/index.ts
index 9a2164d0c2..c10e5d1601 100644
--- a/lib/modules/platform/codecommit/index.ts
+++ b/lib/modules/platform/codecommit/index.ts
@@ -1,9 +1,9 @@
 import { Buffer } from 'node:buffer';
-import {
+import type {
   GetCommentsForPullRequestOutput,
   ListRepositoriesOutput,
-  PullRequestStatusEnum,
 } from '@aws-sdk/client-codecommit';
+import { PullRequestStatusEnum } from '@aws-sdk/client-codecommit';
 import {
   PLATFORM_BAD_CREDENTIALS,
   REPOSITORY_EMPTY,
diff --git a/lib/modules/platform/gitea/gitea-helper.ts b/lib/modules/platform/gitea/gitea-helper.ts
index fffa9dc5d1..2514faf3e7 100644
--- a/lib/modules/platform/gitea/gitea-helper.ts
+++ b/lib/modules/platform/gitea/gitea-helper.ts
@@ -1,5 +1,6 @@
 import type { BranchStatus } from '../../../types';
-import { GiteaHttp, GiteaHttpOptions } from '../../../util/http/gitea';
+import type { GiteaHttpOptions } from '../../../util/http/gitea';
+import { GiteaHttp } from '../../../util/http/gitea';
 import { getQueryString } from '../../../util/url';
 import type {
   Branch,
diff --git a/lib/modules/platform/github/issue.spec.ts b/lib/modules/platform/github/issue.spec.ts
index c2d028b4bd..749364ddf5 100644
--- a/lib/modules/platform/github/issue.spec.ts
+++ b/lib/modules/platform/github/issue.spec.ts
@@ -1,6 +1,7 @@
 import * as memCache from '../../../util/cache/memory';
 import { getCache, resetCache } from '../../../util/cache/repository';
-import { GithubIssue, GithubIssueCache } from './issue';
+import type { GithubIssue } from './issue';
+import { GithubIssueCache } from './issue';
 
 describe('modules/platform/github/issue', () => {
   describe('GithubIssueCache', () => {
diff --git a/lib/modules/versioning/aws-machine-image/index.ts b/lib/modules/versioning/aws-machine-image/index.ts
index 89dc811426..749a511eb4 100644
--- a/lib/modules/versioning/aws-machine-image/index.ts
+++ b/lib/modules/versioning/aws-machine-image/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'aws-machine-image';
diff --git a/lib/modules/versioning/azure-rest-api/index.ts b/lib/modules/versioning/azure-rest-api/index.ts
index 9f36c3ecc0..a47f2efd31 100644
--- a/lib/modules/versioning/azure-rest-api/index.ts
+++ b/lib/modules/versioning/azure-rest-api/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'azure-rest-api';
diff --git a/lib/modules/versioning/conan/range.ts b/lib/modules/versioning/conan/range.ts
index 885e2c2699..fcb43b7bc9 100644
--- a/lib/modules/versioning/conan/range.ts
+++ b/lib/modules/versioning/conan/range.ts
@@ -1,5 +1,6 @@
 import * as semver from 'semver';
-import { SemVer, parseRange } from 'semver-utils';
+import type { SemVer } from 'semver-utils';
+import { parseRange } from 'semver-utils';
 import { logger } from '../../../logger';
 import { coerceString } from '../../../util/string';
 import type { NewValueConfig } from '../types';
diff --git a/lib/modules/versioning/deb/index.ts b/lib/modules/versioning/deb/index.ts
index d96a70c4aa..4bafdc04e1 100644
--- a/lib/modules/versioning/deb/index.ts
+++ b/lib/modules/versioning/deb/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'deb';
diff --git a/lib/modules/versioning/distro.ts b/lib/modules/versioning/distro.ts
index e434d4a8ae..0fe2dd50db 100644
--- a/lib/modules/versioning/distro.ts
+++ b/lib/modules/versioning/distro.ts
@@ -1,5 +1,6 @@
 import { DateTime } from 'luxon';
-import dataFiles, { DataFile } from '../../data-files.generated';
+import type { DataFile } from '../../data-files.generated';
+import dataFiles from '../../data-files.generated';
 
 export interface DistroSchedule {
   codename: string;
diff --git a/lib/modules/versioning/docker/index.ts b/lib/modules/versioning/docker/index.ts
index a196189d5b..23c10689c3 100644
--- a/lib/modules/versioning/docker/index.ts
+++ b/lib/modules/versioning/docker/index.ts
@@ -1,6 +1,7 @@
 import { regEx } from '../../../util/regex';
 import { coerceString } from '../../../util/string';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'docker';
diff --git a/lib/modules/versioning/generic.spec.ts b/lib/modules/versioning/generic.spec.ts
index 4308a70abf..5aafc0f5c5 100644
--- a/lib/modules/versioning/generic.spec.ts
+++ b/lib/modules/versioning/generic.spec.ts
@@ -1,5 +1,6 @@
 import { partial } from '../../../test/util';
-import { GenericVersion, GenericVersioningApi } from './generic';
+import type { GenericVersion } from './generic';
+import { GenericVersioningApi } from './generic';
 import type { NewValueConfig } from './types';
 
 describe('modules/versioning/generic', () => {
diff --git a/lib/modules/versioning/git/index.ts b/lib/modules/versioning/git/index.ts
index 863e9e05b7..226cc164ff 100644
--- a/lib/modules/versioning/git/index.ts
+++ b/lib/modules/versioning/git/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'git';
diff --git a/lib/modules/versioning/glasskube/index.ts b/lib/modules/versioning/glasskube/index.ts
index 31a1624076..f755f8b5cc 100644
--- a/lib/modules/versioning/glasskube/index.ts
+++ b/lib/modules/versioning/glasskube/index.ts
@@ -1,5 +1,6 @@
 import { SemVer } from 'semver';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'glasskube';
diff --git a/lib/modules/versioning/hermit/index.ts b/lib/modules/versioning/hermit/index.ts
index 6679e1f859..bb370e90a5 100644
--- a/lib/modules/versioning/hermit/index.ts
+++ b/lib/modules/versioning/hermit/index.ts
@@ -1,5 +1,6 @@
 import { satisfies } from 'semver';
-import { RegExpVersion, RegExpVersioningApi } from '../regex';
+import type { RegExpVersion } from '../regex';
+import { RegExpVersioningApi } from '../regex';
 import type { VersioningApiConstructor } from '../types';
 
 export const id = 'hermit';
diff --git a/lib/modules/versioning/index.spec.ts b/lib/modules/versioning/index.spec.ts
index b826fdfd62..ca4369fca7 100644
--- a/lib/modules/versioning/index.spec.ts
+++ b/lib/modules/versioning/index.spec.ts
@@ -1,7 +1,8 @@
 import { getOptions } from '../../config/options';
 import { loadModules } from '../../util/modules';
 import { isVersioningApiConstructor } from './common';
-import { GenericVersion, GenericVersioningApi } from './generic';
+import type { GenericVersion } from './generic';
+import { GenericVersioningApi } from './generic';
 import * as semverVersioning from './semver';
 import * as semverCoercedVersioning from './semver-coerced';
 import type { VersioningApi, VersioningApiConstructor } from './types';
diff --git a/lib/modules/versioning/loose/index.ts b/lib/modules/versioning/loose/index.ts
index dc5ac03f35..23440940a9 100644
--- a/lib/modules/versioning/loose/index.ts
+++ b/lib/modules/versioning/loose/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'loose';
diff --git a/lib/modules/versioning/nixpkgs/index.ts b/lib/modules/versioning/nixpkgs/index.ts
index 59928b6046..c5aa3ddec2 100644
--- a/lib/modules/versioning/nixpkgs/index.ts
+++ b/lib/modules/versioning/nixpkgs/index.ts
@@ -1,5 +1,6 @@
 import is from '@sindresorhus/is';
-import { RegExpVersion, RegExpVersioningApi } from '../regex';
+import type { RegExpVersion } from '../regex';
+import { RegExpVersioningApi } from '../regex';
 import type { VersioningApiConstructor } from '../types';
 
 export const id = 'nixpkgs';
diff --git a/lib/modules/versioning/nuget/range.ts b/lib/modules/versioning/nuget/range.ts
index 76a8bee6e3..80f73110ed 100644
--- a/lib/modules/versioning/nuget/range.ts
+++ b/lib/modules/versioning/nuget/range.ts
@@ -1,4 +1,4 @@
-import { NugetFloatingRange, NugetRange, NugetVersion } from './types';
+import type { NugetFloatingRange, NugetRange, NugetVersion } from './types';
 import { compare, versionToString } from './version';
 
 export function getFloatingRangeLowerBound(
diff --git a/lib/modules/versioning/perl/index.ts b/lib/modules/versioning/perl/index.ts
index 1acb75945b..b5be4a7bd0 100644
--- a/lib/modules/versioning/perl/index.ts
+++ b/lib/modules/versioning/perl/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'perl';
diff --git a/lib/modules/versioning/redhat/index.ts b/lib/modules/versioning/redhat/index.ts
index 5057410492..1a0f2f1ace 100644
--- a/lib/modules/versioning/redhat/index.ts
+++ b/lib/modules/versioning/redhat/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'redhat';
diff --git a/lib/modules/versioning/regex/index.ts b/lib/modules/versioning/regex/index.ts
index 216e10f674..b15e8f6a3a 100644
--- a/lib/modules/versioning/regex/index.ts
+++ b/lib/modules/versioning/regex/index.ts
@@ -1,6 +1,7 @@
 import { CONFIG_VALIDATION } from '../../../constants/error-messages';
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApiConstructor } from '../types';
 
 export const id = 'regex';
diff --git a/lib/modules/versioning/rpm/index.ts b/lib/modules/versioning/rpm/index.ts
index afeda96e9b..7a9d656965 100644
--- a/lib/modules/versioning/rpm/index.ts
+++ b/lib/modules/versioning/rpm/index.ts
@@ -1,6 +1,7 @@
 import is from '@sindresorhus/is';
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'rpm';
diff --git a/lib/modules/versioning/ruby/range.ts b/lib/modules/versioning/ruby/range.ts
index 1fef56d381..4e54fac8fd 100644
--- a/lib/modules/versioning/ruby/range.ts
+++ b/lib/modules/versioning/ruby/range.ts
@@ -1,6 +1,7 @@
 import { satisfies } from '@renovatebot/ruby-semver';
 import { parse as _parse } from '@renovatebot/ruby-semver/dist/ruby/requirement.js';
-import { Version, create } from '@renovatebot/ruby-semver/dist/ruby/version.js';
+import type { Version } from '@renovatebot/ruby-semver/dist/ruby/version.js';
+import { create } from '@renovatebot/ruby-semver/dist/ruby/version.js';
 import { logger } from '../../../logger';
 import { regEx } from '../../../util/regex';
 import { EQUAL, GT, GTE, LT, LTE, NOT_EQUAL, PGTE } from './operator';
diff --git a/lib/modules/versioning/ruby/strategies/bump.ts b/lib/modules/versioning/ruby/strategies/bump.ts
index 0167dc9ede..3f75fc683f 100644
--- a/lib/modules/versioning/ruby/strategies/bump.ts
+++ b/lib/modules/versioning/ruby/strategies/bump.ts
@@ -1,6 +1,7 @@
 import { gt, gte, lt } from '@renovatebot/ruby-semver';
 import { GTE, LT, LTE, NOT_EQUAL, PGTE } from '../operator';
-import { Range, parseRanges, stringifyRanges } from '../range';
+import type { Range } from '../range';
+import { parseRanges, stringifyRanges } from '../range';
 import { adapt, trimZeroes } from '../version';
 import { replacePart } from './replace';
 
diff --git a/lib/modules/versioning/ruby/strategies/replace.ts b/lib/modules/versioning/ruby/strategies/replace.ts
index 29d32d859d..17008c8aab 100644
--- a/lib/modules/versioning/ruby/strategies/replace.ts
+++ b/lib/modules/versioning/ruby/strategies/replace.ts
@@ -1,6 +1,7 @@
 import { logger } from '../../../../logger';
 import { EQUAL, GT, GTE, LT, LTE, NOT_EQUAL, PGTE } from '../operator';
-import { Range, parseRanges, satisfiesRange, stringifyRanges } from '../range';
+import type { Range } from '../range';
+import { parseRanges, satisfiesRange, stringifyRanges } from '../range';
 import { adapt, decrement, floor, increment } from '../version';
 
 // Common logic for replace, widen, and bump strategies
diff --git a/lib/modules/versioning/ruby/strategies/widen.ts b/lib/modules/versioning/ruby/strategies/widen.ts
index 05ad8f0c03..a5f502ef13 100644
--- a/lib/modules/versioning/ruby/strategies/widen.ts
+++ b/lib/modules/versioning/ruby/strategies/widen.ts
@@ -1,5 +1,6 @@
 import { GTE, LT, PGTE } from '../operator';
-import { Range, parseRanges, satisfiesRange, stringifyRanges } from '../range';
+import type { Range } from '../range';
+import { parseRanges, satisfiesRange, stringifyRanges } from '../range';
 import { increment, pgteUpperBound } from '../version';
 import { replacePart } from './replace';
 
diff --git a/lib/modules/versioning/ruby/version.ts b/lib/modules/versioning/ruby/version.ts
index f82fdb152d..d5e5fdf477 100644
--- a/lib/modules/versioning/ruby/version.ts
+++ b/lib/modules/versioning/ruby/version.ts
@@ -1,8 +1,6 @@
 import { eq, major, minor, patch, prerelease } from '@renovatebot/ruby-semver';
-import {
-  SegmentElement,
-  create,
-} from '@renovatebot/ruby-semver/dist/ruby/version.js';
+import type { SegmentElement } from '@renovatebot/ruby-semver/dist/ruby/version.js';
+import { create } from '@renovatebot/ruby-semver/dist/ruby/version.js';
 import { regEx } from '../../../util/regex';
 
 interface RubyVersion {
diff --git a/lib/modules/versioning/semver-coerced/index.ts b/lib/modules/versioning/semver-coerced/index.ts
index 7eb2ca7c61..36f65fa0e1 100644
--- a/lib/modules/versioning/semver-coerced/index.ts
+++ b/lib/modules/versioning/semver-coerced/index.ts
@@ -1,5 +1,6 @@
 import is from '@sindresorhus/is';
-import semver, { SemVer } from 'semver';
+import type { SemVer } from 'semver';
+import semver from 'semver';
 import stable from 'semver-stable';
 import { regEx } from '../../../util/regex';
 import type { NewValueConfig, VersioningApi } from '../types';
diff --git a/lib/modules/versioning/unity3d/index.ts b/lib/modules/versioning/unity3d/index.ts
index 07d0e3284f..7d64e8b088 100644
--- a/lib/modules/versioning/unity3d/index.ts
+++ b/lib/modules/versioning/unity3d/index.ts
@@ -1,5 +1,6 @@
 import { regEx } from '../../../util/regex';
-import { GenericVersion, GenericVersioningApi } from '../generic';
+import type { GenericVersion } from '../generic';
+import { GenericVersioningApi } from '../generic';
 import type { VersioningApi } from '../types';
 
 export const id = 'unity3d';
diff --git a/lib/util/cache/package/decorator.ts b/lib/util/cache/package/decorator.ts
index 00c96640df..70be6ff6d0 100644
--- a/lib/util/cache/package/decorator.ts
+++ b/lib/util/cache/package/decorator.ts
@@ -2,7 +2,8 @@ import is from '@sindresorhus/is';
 import { DateTime } from 'luxon';
 import { GlobalConfig } from '../../../config/global';
 import { logger } from '../../../logger';
-import { Decorator, decorate } from '../../decorator';
+import type { Decorator } from '../../decorator';
+import { decorate } from '../../decorator';
 import { acquireLock } from '../../mutex';
 import type { DecoratorCachedRecord, PackageCacheNamespace } from './types';
 import * as packageCache from '.';
diff --git a/lib/util/cache/repository/impl/base.ts b/lib/util/cache/repository/impl/base.ts
index b85d6ba3ee..71400e0205 100644
--- a/lib/util/cache/repository/impl/base.ts
+++ b/lib/util/cache/repository/impl/base.ts
@@ -6,7 +6,8 @@ import { hash } from '../../../hash';
 import { safeStringify } from '../../../stringify';
 import { CACHE_REVISION } from '../common';
 import { cleanupHttpCache } from '../http-cache';
-import { RepoCacheRecord, RepoCacheV13 } from '../schema';
+import type { RepoCacheRecord } from '../schema';
+import { RepoCacheV13 } from '../schema';
 import type { RepoCache, RepoCacheData } from '../types';
 
 export abstract class RepoCacheBase implements RepoCache {
diff --git a/lib/util/cache/repository/impl/s3.spec.ts b/lib/util/cache/repository/impl/s3.spec.ts
index 438d2316a1..8d2d102fbf 100644
--- a/lib/util/cache/repository/impl/s3.spec.ts
+++ b/lib/util/cache/repository/impl/s3.spec.ts
@@ -1,10 +1,12 @@
 import { Readable } from 'node:stream';
-import {
-  GetObjectCommand,
+import type {
   GetObjectCommandInput,
-  PutObjectCommand,
   PutObjectCommandInput,
   PutObjectCommandOutput,
+} from '@aws-sdk/client-s3';
+import {
+  GetObjectCommand,
+  PutObjectCommand,
   S3Client,
 } from '@aws-sdk/client-s3';
 import { mockClient } from 'aws-sdk-client-mock';
diff --git a/lib/util/cache/repository/impl/s3.ts b/lib/util/cache/repository/impl/s3.ts
index e0cbe20bbb..42bf18d134 100644
--- a/lib/util/cache/repository/impl/s3.ts
+++ b/lib/util/cache/repository/impl/s3.ts
@@ -1,10 +1,9 @@
 import { Readable } from 'node:stream';
-import {
-  GetObjectCommand,
+import type {
   GetObjectCommandInput,
-  PutObjectCommand,
   PutObjectCommandInput,
 } from '@aws-sdk/client-s3';
+import { GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3';
 import is from '@sindresorhus/is';
 import { logger } from '../../../../logger';
 import { outputCacheFile } from '../../../fs';
diff --git a/lib/util/decorator/index.spec.ts b/lib/util/decorator/index.spec.ts
index cdcb82e5cb..8ad1ac623f 100644
--- a/lib/util/decorator/index.spec.ts
+++ b/lib/util/decorator/index.spec.ts
@@ -1,4 +1,5 @@
-import { Decorator, decorate } from '.';
+import type { Decorator } from '.';
+import { decorate } from '.';
 
 interface WrapParameters {
   mock: jest.Mock;
diff --git a/lib/util/exec/common.ts b/lib/util/exec/common.ts
index 5ba23bf660..ac3b669e4e 100644
--- a/lib/util/exec/common.ts
+++ b/lib/util/exec/common.ts
@@ -1,5 +1,7 @@
-import { ChildProcess, spawn } from 'node:child_process';
-import { ExecError, ExecErrorData } from './exec-error';
+import type { ChildProcess } from 'node:child_process';
+import { spawn } from 'node:child_process';
+import type { ExecErrorData } from './exec-error';
+import { ExecError } from './exec-error';
 import type { ExecResult, RawExecOptions } from './types';
 
 // https://man7.org/linux/man-pages/man7/signal.7.html#NAME
diff --git a/lib/util/fs/index.spec.ts b/lib/util/fs/index.spec.ts
index 4a4f114602..73f1ea7446 100644
--- a/lib/util/fs/index.spec.ts
+++ b/lib/util/fs/index.spec.ts
@@ -1,6 +1,7 @@
 import _findUp from 'find-up';
 import fs from 'fs-extra';
-import tmp, { DirectoryResult } from 'tmp-promise';
+import type { DirectoryResult } from 'tmp-promise';
+import tmp from 'tmp-promise';
 import { join, resolve } from 'upath';
 import { mockedFunction } from '../../../test/util';
 import { GlobalConfig } from '../../config/global';
diff --git a/lib/util/git/index.ts b/lib/util/git/index.ts
index eb58fd3625..f642a7ecaa 100644
--- a/lib/util/git/index.ts
+++ b/lib/util/git/index.ts
@@ -3,13 +3,8 @@ import { setTimeout } from 'timers/promises';
 import is from '@sindresorhus/is';
 import fs from 'fs-extra';
 import semver from 'semver';
-import {
-  Options,
-  ResetMode,
-  SimpleGit,
-  TaskOptions,
-  simpleGit,
-} from 'simple-git';
+import type { Options, SimpleGit, TaskOptions } from 'simple-git';
+import { ResetMode, simpleGit } from 'simple-git';
 import upath from 'upath';
 import { configFileNames } from '../../config/app-strings';
 import { GlobalConfig } from '../../config/global';
diff --git a/lib/util/git/semantic.spec.ts b/lib/util/git/semantic.spec.ts
index cea1cd399b..7a977a020d 100644
--- a/lib/util/git/semantic.spec.ts
+++ b/lib/util/git/semantic.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, git, partial } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { git, partial } from '../../../test/util';
 import { initRepoCache } from '../cache/repository/init';
 import { detectSemanticCommits } from './semantic';
 
diff --git a/lib/util/github/graphql/datasource-fetcher.spec.ts b/lib/util/github/graphql/datasource-fetcher.spec.ts
index 6d6dd7957d..ba139bf80a 100644
--- a/lib/util/github/graphql/datasource-fetcher.spec.ts
+++ b/lib/util/github/graphql/datasource-fetcher.spec.ts
@@ -2,7 +2,8 @@ import AggregateError from 'aggregate-error';
 import * as httpMock from '../../../../test/http-mock';
 import { mocked, partial } from '../../../../test/util';
 import * as _packageCache from '../../../util/cache/package';
-import { GithubGraphqlResponse, GithubHttp } from '../../http/github';
+import type { GithubGraphqlResponse } from '../../http/github';
+import { GithubHttp } from '../../http/github';
 import { range } from '../../range';
 import {
   GithubGraphqlDatasourceFetcher as Datasource,
diff --git a/lib/util/github/graphql/util.ts b/lib/util/github/graphql/util.ts
index 6ff867cafe..1529ecd02d 100644
--- a/lib/util/github/graphql/util.ts
+++ b/lib/util/github/graphql/util.ts
@@ -1,4 +1,5 @@
-import { DateTime, DurationLikeObject } from 'luxon';
+import type { DurationLikeObject } from 'luxon';
+import { DateTime } from 'luxon';
 
 export function prepareQuery(payloadQuery: string): string {
   return `
diff --git a/lib/util/http/index.ts b/lib/util/http/index.ts
index 4f7539da94..34ce5a691e 100644
--- a/lib/util/http/index.ts
+++ b/lib/util/http/index.ts
@@ -1,8 +1,10 @@
 import is from '@sindresorhus/is';
 import merge from 'deepmerge';
-import got, { Options, RequestError, RetryObject } from 'got';
+import type { Options, RetryObject } from 'got';
+import got, { RequestError } from 'got';
 import type { SetRequired } from 'type-fest';
-import { infer as Infer, type ZodError, ZodType } from 'zod';
+import type { infer as Infer, ZodError } from 'zod';
+import { ZodType } from 'zod';
 import { GlobalConfig } from '../../config/global';
 import { HOST_DISABLED } from '../../constants/error-messages';
 import { pkg } from '../../expose.cjs';
diff --git a/lib/util/json-writer/editor-config.ts b/lib/util/json-writer/editor-config.ts
index 5474e655de..b8b57386de 100644
--- a/lib/util/json-writer/editor-config.ts
+++ b/lib/util/json-writer/editor-config.ts
@@ -1,4 +1,5 @@
-import { KnownProps, parse } from 'editorconfig';
+import type { KnownProps } from 'editorconfig';
+import { parse } from 'editorconfig';
 import upath from 'upath';
 import { GlobalConfig } from '../../config/global';
 import { logger } from '../../logger';
diff --git a/lib/util/minimatch.ts b/lib/util/minimatch.ts
index 892e2ae91f..9058beb1b4 100644
--- a/lib/util/minimatch.ts
+++ b/lib/util/minimatch.ts
@@ -1,4 +1,5 @@
-import { Minimatch, MinimatchOptions } from 'minimatch';
+import type { MinimatchOptions } from 'minimatch';
+import { Minimatch } from 'minimatch';
 
 const cache = new Map<string, Minimatch>();
 
diff --git a/lib/util/result.ts b/lib/util/result.ts
index a47e4a40c4..a307ac8d7a 100644
--- a/lib/util/result.ts
+++ b/lib/util/result.ts
@@ -1,4 +1,5 @@
-import { SafeParseReturnType, ZodError, ZodType, ZodTypeDef, z } from 'zod';
+import type { SafeParseReturnType, ZodType, ZodTypeDef } from 'zod';
+import { ZodError, z } from 'zod';
 import { logger } from '../logger';
 
 type Val = NonNullable<unknown>;
diff --git a/lib/util/yaml.ts b/lib/util/yaml.ts
index 407c50aaa2..67098d72b2 100644
--- a/lib/util/yaml.ts
+++ b/lib/util/yaml.ts
@@ -1,6 +1,5 @@
+import type { DumpOptions, LoadOptions } from 'js-yaml';
 import {
-  DumpOptions,
-  LoadOptions,
   loadAll as multiple,
   load as single,
   dump as upstreamDump,
diff --git a/lib/workers/global/config/parse/file.spec.ts b/lib/workers/global/config/parse/file.spec.ts
index 3df7eede2f..18355a1bc6 100644
--- a/lib/workers/global/config/parse/file.spec.ts
+++ b/lib/workers/global/config/parse/file.spec.ts
@@ -1,6 +1,7 @@
 import fs from 'node:fs';
 import fsExtra from 'fs-extra';
-import { DirectoryResult, dir } from 'tmp-promise';
+import type { DirectoryResult } from 'tmp-promise';
+import { dir } from 'tmp-promise';
 import upath from 'upath';
 import { logger } from '../../../../logger';
 import customConfig from './__fixtures__/config';
diff --git a/lib/workers/global/index.spec.ts b/lib/workers/global/index.spec.ts
index 6ee3c4a84e..dd9c31464e 100644
--- a/lib/workers/global/index.spec.ts
+++ b/lib/workers/global/index.spec.ts
@@ -1,6 +1,7 @@
 import { ERROR, WARN } from 'bunyan';
 import fs from 'fs-extra';
-import { RenovateConfig, logger, mocked } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { logger, mocked } from '../../../test/util';
 import { GlobalConfig } from '../../config/global';
 import * as _presets from '../../config/presets';
 import { CONFIG_PRESETS_INVALID } from '../../constants/error-messages';
diff --git a/lib/workers/repository/config-migration/branch/create.spec.ts b/lib/workers/repository/config-migration/branch/create.spec.ts
index 507b6313d0..e0b118eccf 100644
--- a/lib/workers/repository/config-migration/branch/create.spec.ts
+++ b/lib/workers/repository/config-migration/branch/create.spec.ts
@@ -1,6 +1,7 @@
 import type { Indent } from 'detect-indent';
 import { Fixtures } from '../../../../../test/fixtures';
-import { RenovateConfig, partial } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial } from '../../../../../test/util';
 import { getConfig } from '../../../../config/defaults';
 import { scm } from '../../../../modules/platform/scm';
 import { createConfigMigrationBranch } from './create';
diff --git a/lib/workers/repository/config-migration/branch/index.spec.ts b/lib/workers/repository/config-migration/branch/index.spec.ts
index 3e524e79c7..b0f9f6170c 100644
--- a/lib/workers/repository/config-migration/branch/index.spec.ts
+++ b/lib/workers/repository/config-migration/branch/index.spec.ts
@@ -1,7 +1,7 @@
 import { mock } from 'jest-mock-extended';
 import { Fixtures } from '../../../../../test/fixtures';
+import type { RenovateConfig } from '../../../../../test/util';
 import {
-  RenovateConfig,
   git,
   mockedFunction,
   partial,
diff --git a/lib/workers/repository/config-migration/branch/index.ts b/lib/workers/repository/config-migration/branch/index.ts
index 2862c8ef50..507fada5d1 100644
--- a/lib/workers/repository/config-migration/branch/index.ts
+++ b/lib/workers/repository/config-migration/branch/index.ts
@@ -1,7 +1,8 @@
 import { GlobalConfig } from '../../../../config/global';
 import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
-import { FindPRConfig, Pr, platform } from '../../../../modules/platform';
+import type { FindPRConfig, Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import { ensureComment } from '../../../../modules/platform/comment';
 import { scm } from '../../../../modules/platform/scm';
 import { getMigrationBranchName } from '../common';
diff --git a/lib/workers/repository/config-migration/branch/rebase.spec.ts b/lib/workers/repository/config-migration/branch/rebase.spec.ts
index 2ce7be2015..cc8b1573b6 100644
--- a/lib/workers/repository/config-migration/branch/rebase.spec.ts
+++ b/lib/workers/repository/config-migration/branch/rebase.spec.ts
@@ -1,7 +1,8 @@
 import type { Indent } from 'detect-indent';
 import JSON5 from 'json5';
 import { Fixtures } from '../../../../../test/fixtures';
-import { RenovateConfig, git, partial, scm } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { git, partial, scm } from '../../../../../test/util';
 import { getConfig } from '../../../../config/defaults';
 import { GlobalConfig } from '../../../../config/global';
 import { MigratedDataFactory } from './migrated-data';
diff --git a/lib/workers/repository/config-migration/pr/index.spec.ts b/lib/workers/repository/config-migration/pr/index.spec.ts
index f104d00975..162d60b5ce 100644
--- a/lib/workers/repository/config-migration/pr/index.spec.ts
+++ b/lib/workers/repository/config-migration/pr/index.spec.ts
@@ -2,12 +2,8 @@ import type { Indent } from 'detect-indent';
 import type { RequestError, Response } from 'got';
 import { mock } from 'jest-mock-extended';
 import { Fixtures } from '../../../../../test/fixtures';
-import {
-  RenovateConfig,
-  partial,
-  platform,
-  scm,
-} from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial, platform, scm } from '../../../../../test/util';
 import { getConfig } from '../../../../config/defaults';
 import { GlobalConfig } from '../../../../config/global';
 import { logger } from '../../../../logger';
diff --git a/lib/workers/repository/configured.spec.ts b/lib/workers/repository/configured.spec.ts
index c7c4113d32..606666fa30 100644
--- a/lib/workers/repository/configured.spec.ts
+++ b/lib/workers/repository/configured.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { partial } from '../../../test/util';
 import { checkIfConfigured } from './configured';
 
 let config: RenovateConfig;
diff --git a/lib/workers/repository/dependency-dashboard.spec.ts b/lib/workers/repository/dependency-dashboard.spec.ts
index 63f0b79cea..8a0c6edd53 100644
--- a/lib/workers/repository/dependency-dashboard.spec.ts
+++ b/lib/workers/repository/dependency-dashboard.spec.ts
@@ -2,12 +2,8 @@ import { ERROR, WARN } from 'bunyan';
 import { codeBlock } from 'common-tags';
 import { mock } from 'jest-mock-extended';
 import { Fixtures } from '../../../test/fixtures';
-import {
-  RenovateConfig,
-  logger,
-  mockedFunction,
-  platform,
-} from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { logger, mockedFunction, platform } from '../../../test/util';
 import { getConfig } from '../../config/defaults';
 import { GlobalConfig } from '../../config/global';
 import type {
diff --git a/lib/workers/repository/error-config.spec.ts b/lib/workers/repository/error-config.spec.ts
index c5eefe6d54..0ae61dc68e 100644
--- a/lib/workers/repository/error-config.spec.ts
+++ b/lib/workers/repository/error-config.spec.ts
@@ -1,5 +1,6 @@
 import { mock } from 'jest-mock-extended';
-import { RenovateConfig, partial, platform } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { partial, platform } from '../../../test/util';
 import { GlobalConfig } from '../../config/global';
 import { CONFIG_VALIDATION } from '../../constants/error-messages';
 import { logger } from '../../logger';
diff --git a/lib/workers/repository/error-config.ts b/lib/workers/repository/error-config.ts
index fb5c735bde..18a8bdf3c8 100644
--- a/lib/workers/repository/error-config.ts
+++ b/lib/workers/repository/error-config.ts
@@ -2,7 +2,8 @@
 import { GlobalConfig } from '../../config/global';
 import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
-import { Pr, platform } from '../../modules/platform';
+import type { Pr } from '../../modules/platform';
+import { platform } from '../../modules/platform';
 
 export function raiseConfigWarningIssue(
   config: RenovateConfig,
diff --git a/lib/workers/repository/error.spec.ts b/lib/workers/repository/error.spec.ts
index 021836c21c..abc2dd622c 100644
--- a/lib/workers/repository/error.spec.ts
+++ b/lib/workers/repository/error.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { partial } from '../../../test/util';
 import {
   CONFIG_SECRETS_EXPOSED,
   CONFIG_VALIDATION,
diff --git a/lib/workers/repository/errors-warnings.spec.ts b/lib/workers/repository/errors-warnings.spec.ts
index 4fee652573..1573c9ef1a 100644
--- a/lib/workers/repository/errors-warnings.spec.ts
+++ b/lib/workers/repository/errors-warnings.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { partial } from '../../../test/util';
 import type { PackageFile } from '../../modules/manager/types';
 import {
   getDepWarningsDashboard,
diff --git a/lib/workers/repository/finalize/prune.spec.ts b/lib/workers/repository/finalize/prune.spec.ts
index a9087eb2c6..496fc82ab4 100644
--- a/lib/workers/repository/finalize/prune.spec.ts
+++ b/lib/workers/repository/finalize/prune.spec.ts
@@ -1,10 +1,5 @@
-import {
-  RenovateConfig,
-  git,
-  partial,
-  platform,
-  scm,
-} from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { git, partial, platform, scm } from '../../../../test/util';
 import { GlobalConfig } from '../../../config/global';
 import type { Pr } from '../../../modules/platform/types';
 import * as cleanup from './prune';
diff --git a/lib/workers/repository/finalize/repository-statistics.spec.ts b/lib/workers/repository/finalize/repository-statistics.spec.ts
index e092fb1a20..11960e3084 100644
--- a/lib/workers/repository/finalize/repository-statistics.spec.ts
+++ b/lib/workers/repository/finalize/repository-statistics.spec.ts
@@ -1,5 +1,6 @@
 import { Fixtures } from '../../../../test/fixtures';
-import { RenovateConfig, mockedFunction, partial } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { mockedFunction, partial } from '../../../../test/util';
 import { logger } from '../../../logger';
 import { platform } from '../../../modules/platform';
 import * as cache from '../../../util/cache/repository';
diff --git a/lib/workers/repository/index.spec.ts b/lib/workers/repository/index.spec.ts
index 62068c172c..652c15caf2 100644
--- a/lib/workers/repository/index.spec.ts
+++ b/lib/workers/repository/index.spec.ts
@@ -1,5 +1,6 @@
 import { mock } from 'jest-mock-extended';
-import { RenovateConfig, mocked } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { mocked } from '../../../test/util';
 import { getConfig } from '../../config/defaults';
 import { GlobalConfig } from '../../config/global';
 import * as _process from './process';
diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts
index 2e2c1c0e4b..25536aad04 100644
--- a/lib/workers/repository/index.ts
+++ b/lib/workers/repository/index.ts
@@ -38,7 +38,8 @@ import { OnboardingState } from './onboarding/common';
 import { ensureOnboardingPr } from './onboarding/pr';
 import { extractDependencies, updateRepo } from './process';
 import type { ExtractResult } from './process/extract-update';
-import { ProcessResult, processResult } from './result';
+import type { ProcessResult } from './result';
+import { processResult } from './result';
 
 // istanbul ignore next
 export async function renovateRepository(
diff --git a/lib/workers/repository/init/apis.spec.ts b/lib/workers/repository/init/apis.spec.ts
index d03c7319e9..ad667e23e4 100644
--- a/lib/workers/repository/init/apis.spec.ts
+++ b/lib/workers/repository/init/apis.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, platform } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { platform } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import {
   REPOSITORY_DISABLED,
diff --git a/lib/workers/repository/init/apis.ts b/lib/workers/repository/init/apis.ts
index c0a9138776..296d9beda1 100644
--- a/lib/workers/repository/init/apis.ts
+++ b/lib/workers/repository/init/apis.ts
@@ -5,7 +5,8 @@ import {
   REPOSITORY_FORKED,
 } from '../../../constants/error-messages';
 import { logger } from '../../../logger';
-import { RepoParams, RepoResult, platform } from '../../../modules/platform';
+import type { RepoParams, RepoResult } from '../../../modules/platform';
+import { platform } from '../../../modules/platform';
 
 // TODO: fix types (#22198)
 export type WorkerPlatformConfig = RepoResult &
diff --git a/lib/workers/repository/init/index.spec.ts b/lib/workers/repository/init/index.spec.ts
index 4f96f01811..54e412fa97 100644
--- a/lib/workers/repository/init/index.spec.ts
+++ b/lib/workers/repository/init/index.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, logger, mocked, partial } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { logger, mocked, partial } from '../../../../test/util';
 import { GlobalConfig } from '../../../config/global';
 import * as _secrets from '../../../config/secrets';
 import * as _onboarding from '../onboarding/branch';
diff --git a/lib/workers/repository/init/index.ts b/lib/workers/repository/init/index.ts
index 8f21f936db..5e284c6671 100644
--- a/lib/workers/repository/init/index.ts
+++ b/lib/workers/repository/init/index.ts
@@ -10,7 +10,8 @@ import { cloneSubmodules, setUserRepoConfig } from '../../../util/git';
 import { getAll } from '../../../util/host-rules';
 import { checkIfConfigured } from '../configured';
 import { PackageFiles } from '../package-files';
-import { WorkerPlatformConfig, initApis } from './apis';
+import type { WorkerPlatformConfig } from './apis';
+import { initApis } from './apis';
 import { initializeCaches, resetCaches } from './cache';
 import { getRepoConfig } from './config';
 import { detectVulnerabilityAlerts } from './vulnerability';
diff --git a/lib/workers/repository/init/merge.spec.ts b/lib/workers/repository/init/merge.spec.ts
index 7cc7a92a05..23e1a27d14 100644
--- a/lib/workers/repository/init/merge.spec.ts
+++ b/lib/workers/repository/init/merge.spec.ts
@@ -1,5 +1,5 @@
+import type { RenovateConfig } from '../../../../test/util';
 import {
-  RenovateConfig,
   fs,
   logger,
   mocked,
diff --git a/lib/workers/repository/init/vulnerability.spec.ts b/lib/workers/repository/init/vulnerability.spec.ts
index 1be284c8e9..f0e61ba2c3 100644
--- a/lib/workers/repository/init/vulnerability.spec.ts
+++ b/lib/workers/repository/init/vulnerability.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial, platform } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { partial, platform } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import { NO_VULNERABILITY_ALERTS } from '../../../constants/error-messages';
 import { logger } from '../../../logger';
diff --git a/lib/workers/repository/onboarding/branch/check.spec.ts b/lib/workers/repository/onboarding/branch/check.spec.ts
index 1761e95932..1eb22c0767 100644
--- a/lib/workers/repository/onboarding/branch/check.spec.ts
+++ b/lib/workers/repository/onboarding/branch/check.spec.ts
@@ -1,11 +1,5 @@
-import {
-  RenovateConfig,
-  git,
-  mocked,
-  partial,
-  platform,
-  scm,
-} from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { git, mocked, partial, platform, scm } from '../../../../../test/util';
 import { REPOSITORY_CLOSED_ONBOARDING } from '../../../../constants/error-messages';
 import { logger } from '../../../../logger';
 import type { Pr } from '../../../../modules/platform/types';
diff --git a/lib/workers/repository/onboarding/branch/check.ts b/lib/workers/repository/onboarding/branch/check.ts
index c0b1f61591..186b23a5b0 100644
--- a/lib/workers/repository/onboarding/branch/check.ts
+++ b/lib/workers/repository/onboarding/branch/check.ts
@@ -5,7 +5,8 @@ import {
   REPOSITORY_NO_CONFIG,
 } from '../../../../constants/error-messages';
 import { logger } from '../../../../logger';
-import { Pr, platform } from '../../../../modules/platform';
+import type { Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import { ensureComment } from '../../../../modules/platform/comment';
 import { scm } from '../../../../modules/platform/scm';
 import { getCache } from '../../../../util/cache/repository';
diff --git a/lib/workers/repository/onboarding/branch/config.spec.ts b/lib/workers/repository/onboarding/branch/config.spec.ts
index 88d9ed4171..238b8b939c 100644
--- a/lib/workers/repository/onboarding/branch/config.spec.ts
+++ b/lib/workers/repository/onboarding/branch/config.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial } from '../../../../../test/util';
 import { GlobalConfig } from '../../../../config/global';
 import * as presets from '../../../../config/presets/local';
 import { PRESET_DEP_NOT_FOUND } from '../../../../config/presets/util';
diff --git a/lib/workers/repository/onboarding/branch/create.spec.ts b/lib/workers/repository/onboarding/branch/create.spec.ts
index 2d63a39461..eff82ee09c 100644
--- a/lib/workers/repository/onboarding/branch/create.spec.ts
+++ b/lib/workers/repository/onboarding/branch/create.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, scm } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { scm } from '../../../../../test/util';
 import { getConfig } from '../../../../config/defaults';
 import { createOnboardingBranch } from './create';
 
diff --git a/lib/workers/repository/onboarding/branch/index.spec.ts b/lib/workers/repository/onboarding/branch/index.spec.ts
index d7a472e6cf..82961dbe7a 100644
--- a/lib/workers/repository/onboarding/branch/index.spec.ts
+++ b/lib/workers/repository/onboarding/branch/index.spec.ts
@@ -1,12 +1,6 @@
 import { mock } from 'jest-mock-extended';
-import {
-  RenovateConfig,
-  fs,
-  git,
-  mocked,
-  platform,
-  scm,
-} from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { fs, git, mocked, platform, scm } from '../../../../../test/util';
 import { configFileNames } from '../../../../config/app-strings';
 import { getConfig } from '../../../../config/defaults';
 import { GlobalConfig } from '../../../../config/global';
diff --git a/lib/workers/repository/onboarding/branch/rebase.spec.ts b/lib/workers/repository/onboarding/branch/rebase.spec.ts
index 6186f75af3..5fe8a211cf 100644
--- a/lib/workers/repository/onboarding/branch/rebase.spec.ts
+++ b/lib/workers/repository/onboarding/branch/rebase.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, mocked, scm } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { mocked, scm } from '../../../../../test/util';
 import { GlobalConfig } from '../../../../config/global';
 import { logger } from '../../../../logger';
 import * as memCache from '../../../../util/cache/memory';
diff --git a/lib/workers/repository/onboarding/pr/base-branch.spec.ts b/lib/workers/repository/onboarding/pr/base-branch.spec.ts
index 52019e65ab..803ab8ce78 100644
--- a/lib/workers/repository/onboarding/pr/base-branch.spec.ts
+++ b/lib/workers/repository/onboarding/pr/base-branch.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial } from '../../../../../test/util';
 import { getBaseBranchDesc } from './base-branch';
 
 describe('workers/repository/onboarding/pr/base-branch', () => {
diff --git a/lib/workers/repository/onboarding/pr/config-description.spec.ts b/lib/workers/repository/onboarding/pr/config-description.spec.ts
index 140a1ae6c9..399e5f8a7d 100644
--- a/lib/workers/repository/onboarding/pr/config-description.spec.ts
+++ b/lib/workers/repository/onboarding/pr/config-description.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial } from '../../../../../test/util';
 import type { PackageFile } from '../../../../modules/manager/types';
 import { getConfigDesc } from './config-description';
 
diff --git a/lib/workers/repository/onboarding/pr/index.spec.ts b/lib/workers/repository/onboarding/pr/index.spec.ts
index 030ce3680d..ecf18987c0 100644
--- a/lib/workers/repository/onboarding/pr/index.spec.ts
+++ b/lib/workers/repository/onboarding/pr/index.spec.ts
@@ -1,10 +1,6 @@
 import type { RequestError, Response } from 'got';
-import {
-  RenovateConfig,
-  partial,
-  platform,
-  scm,
-} from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial, platform, scm } from '../../../../../test/util';
 import { getConfig } from '../../../../config/defaults';
 import { GlobalConfig } from '../../../../config/global';
 import { logger } from '../../../../logger';
diff --git a/lib/workers/repository/onboarding/pr/pr-list.spec.ts b/lib/workers/repository/onboarding/pr/pr-list.spec.ts
index 79857de4e3..6e1637628b 100644
--- a/lib/workers/repository/onboarding/pr/pr-list.spec.ts
+++ b/lib/workers/repository/onboarding/pr/pr-list.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial } from '../../../../../test/util';
 import type { BranchConfig } from '../../../types';
 import { getPrList } from './pr-list';
 
diff --git a/lib/workers/repository/process/extract-update.ts b/lib/workers/repository/process/extract-update.ts
index a7b611d659..e31b055a9e 100644
--- a/lib/workers/repository/process/extract-update.ts
+++ b/lib/workers/repository/process/extract-update.ts
@@ -15,7 +15,8 @@ import { branchifyUpgrades } from '../updates/branchify';
 import { fetchUpdates } from './fetch';
 import { sortBranches } from './sort';
 import { Vulnerabilities } from './vulnerabilities';
-import { WriteUpdateResult, writeUpdates } from './write';
+import type { WriteUpdateResult } from './write';
+import { writeUpdates } from './write';
 
 export interface ExtractResult {
   branches: BranchConfig[];
diff --git a/lib/workers/repository/process/fetch.spec.ts b/lib/workers/repository/process/fetch.spec.ts
index c8d4090c53..172a6cb456 100644
--- a/lib/workers/repository/process/fetch.spec.ts
+++ b/lib/workers/repository/process/fetch.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, mocked } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { mocked } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import { MavenDatasource } from '../../../modules/datasource/maven';
 import type { PackageFile } from '../../../modules/manager/types';
diff --git a/lib/workers/repository/process/index.spec.ts b/lib/workers/repository/process/index.spec.ts
index 95006f1dea..28fb4ad622 100644
--- a/lib/workers/repository/process/index.spec.ts
+++ b/lib/workers/repository/process/index.spec.ts
@@ -1,11 +1,5 @@
-import {
-  RenovateConfig,
-  git,
-  logger,
-  mocked,
-  platform,
-  scm,
-} from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { git, logger, mocked, platform, scm } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import { GlobalConfig } from '../../../config/global';
 import { CONFIG_VALIDATION } from '../../../constants/error-messages';
diff --git a/lib/workers/repository/process/index.ts b/lib/workers/repository/process/index.ts
index 7eaec19226..8fb4ef3b0e 100644
--- a/lib/workers/repository/process/index.ts
+++ b/lib/workers/repository/process/index.ts
@@ -15,7 +15,8 @@ import { addSplit } from '../../../util/split';
 import { getRegexPredicate } from '../../../util/string-match';
 import type { BranchConfig } from '../../types';
 import { readDashboardBody } from '../dependency-dashboard';
-import { ExtractResult, extract, lookup, update } from './extract-update';
+import type { ExtractResult } from './extract-update';
+import { extract, lookup, update } from './extract-update';
 import type { WriteUpdateResult } from './write';
 
 async function getBaseBranchConfig(
diff --git a/lib/workers/repository/process/limits.spec.ts b/lib/workers/repository/process/limits.spec.ts
index 98fa41721c..93e3810664 100644
--- a/lib/workers/repository/process/limits.spec.ts
+++ b/lib/workers/repository/process/limits.spec.ts
@@ -1,5 +1,6 @@
 import { DateTime } from 'luxon';
-import { RenovateConfig, partial, platform, scm } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { partial, platform, scm } from '../../../../test/util';
 import type { Pr } from '../../../modules/platform/types';
 import type { BranchConfig } from '../../types';
 import * as limits from './limits';
diff --git a/lib/workers/repository/process/limits.ts b/lib/workers/repository/process/limits.ts
index e5e9b68b3c..55aae025e0 100644
--- a/lib/workers/repository/process/limits.ts
+++ b/lib/workers/repository/process/limits.ts
@@ -1,7 +1,8 @@
 import { DateTime } from 'luxon';
 import type { RenovateConfig } from '../../../config/types';
 import { logger } from '../../../logger';
-import { Pr, platform } from '../../../modules/platform';
+import type { Pr } from '../../../modules/platform';
+import { platform } from '../../../modules/platform';
 import { scm } from '../../../modules/platform/scm';
 import { ExternalHostError } from '../../../types/errors/external-host-error';
 import type { BranchConfig } from '../../types';
diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts
index 7c57e5a0b6..c4167937ac 100644
--- a/lib/workers/repository/process/lookup/index.ts
+++ b/lib/workers/repository/process/lookup/index.ts
@@ -3,10 +3,12 @@ import { mergeChildConfig } from '../../../../config';
 import type { ValidationMessage } from '../../../../config/types';
 import { CONFIG_VALIDATION } from '../../../../constants/error-messages';
 import { logger } from '../../../../logger';
-import {
+import type {
   GetDigestInputConfig,
   Release,
   ReleaseResult,
+} from '../../../../modules/datasource';
+import {
   applyDatasourceFilters,
   getDigest,
   getRawPkgReleases,
diff --git a/lib/workers/repository/process/vulnerabilities.spec.ts b/lib/workers/repository/process/vulnerabilities.spec.ts
index 29f81b9670..f8ae199bba 100644
--- a/lib/workers/repository/process/vulnerabilities.spec.ts
+++ b/lib/workers/repository/process/vulnerabilities.spec.ts
@@ -1,7 +1,8 @@
 import type { Osv, OsvOffline } from '@renovatebot/osv-offline';
 import { codeBlock } from 'common-tags';
 import { mockFn } from 'jest-mock-extended';
-import { RenovateConfig, logger } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { logger } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import type { PackageFile } from '../../../modules/manager/types';
 import { Vulnerabilities } from './vulnerabilities';
diff --git a/lib/workers/repository/process/vulnerabilities.ts b/lib/workers/repository/process/vulnerabilities.ts
index 41afa47eb2..05624d0835 100644
--- a/lib/workers/repository/process/vulnerabilities.ts
+++ b/lib/workers/repository/process/vulnerabilities.ts
@@ -1,5 +1,6 @@
 // TODO #22198
-import { Ecosystem, Osv, OsvOffline } from '@renovatebot/osv-offline';
+import type { Ecosystem, Osv } from '@renovatebot/osv-offline';
+import { OsvOffline } from '@renovatebot/osv-offline';
 import is from '@sindresorhus/is';
 import type { CvssScore } from 'vuln-vects';
 import { parseCvssVector } from 'vuln-vects';
@@ -11,10 +12,8 @@ import type {
   PackageDependency,
   PackageFile,
 } from '../../../modules/manager/types';
-import {
-  VersioningApi,
-  get as getVersioning,
-} from '../../../modules/versioning';
+import type { VersioningApi } from '../../../modules/versioning';
+import { get as getVersioning } from '../../../modules/versioning';
 import { findGithubToken } from '../../../util/check-token';
 import { find } from '../../../util/host-rules';
 import { sanitizeMarkdown } from '../../../util/markdown';
diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts
index 8b41ecd50a..f3a7405fab 100644
--- a/lib/workers/repository/process/write.spec.ts
+++ b/lib/workers/repository/process/write.spec.ts
@@ -1,11 +1,6 @@
 import is from '@sindresorhus/is';
-import {
-  RenovateConfig,
-  logger,
-  mocked,
-  partial,
-  scm,
-} from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { logger, mocked, partial, scm } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import { GlobalConfig } from '../../../config/global';
 import { addMeta } from '../../../logger';
diff --git a/lib/workers/repository/reconfigure/index.spec.ts b/lib/workers/repository/reconfigure/index.spec.ts
index 4729c1e9ef..ac35bf8788 100644
--- a/lib/workers/repository/reconfigure/index.spec.ts
+++ b/lib/workers/repository/reconfigure/index.spec.ts
@@ -1,13 +1,6 @@
 import { mock } from 'jest-mock-extended';
-import {
-  RenovateConfig,
-  fs,
-  git,
-  mocked,
-  partial,
-  platform,
-  scm,
-} from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { fs, git, mocked, partial, platform, scm } from '../../../../test/util';
 import { GlobalConfig } from '../../../config/global';
 import { logger } from '../../../logger';
 import type { Pr } from '../../../modules/platform/types';
diff --git a/lib/workers/repository/result.spec.ts b/lib/workers/repository/result.spec.ts
index 99b648d0b4..39e54c8727 100644
--- a/lib/workers/repository/result.spec.ts
+++ b/lib/workers/repository/result.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial } from '../../../test/util';
+import type { RenovateConfig } from '../../../test/util';
+import { partial } from '../../../test/util';
 import { processResult } from './result';
 
 let config: RenovateConfig;
diff --git a/lib/workers/repository/update/branch/artifacts.spec.ts b/lib/workers/repository/update/branch/artifacts.spec.ts
index db588a0484..7321b453f5 100644
--- a/lib/workers/repository/update/branch/artifacts.spec.ts
+++ b/lib/workers/repository/update/branch/artifacts.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, partial, platform } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial, platform } from '../../../../../test/util';
 import { GlobalConfig } from '../../../../config/global';
 import { logger } from '../../../../logger';
 import type { BranchConfig } from '../../../types';
diff --git a/lib/workers/repository/update/branch/check-existing.ts b/lib/workers/repository/update/branch/check-existing.ts
index 7c6248d0e3..c342a61202 100644
--- a/lib/workers/repository/update/branch/check-existing.ts
+++ b/lib/workers/repository/update/branch/check-existing.ts
@@ -1,7 +1,8 @@
 // TODO #22198
 import { REPOSITORY_CHANGED } from '../../../../constants/error-messages';
 import { logger } from '../../../../logger';
-import { Pr, platform } from '../../../../modules/platform';
+import type { Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import type { BranchConfig } from '../../../types';
 
 export async function prAlreadyExisted(
diff --git a/lib/workers/repository/update/branch/index.ts b/lib/workers/repository/update/branch/index.ts
index b5de4592f1..e88b3e5b32 100644
--- a/lib/workers/repository/update/branch/index.ts
+++ b/lib/workers/repository/update/branch/index.ts
@@ -16,7 +16,8 @@ import {
 } from '../../../../constants/error-messages';
 import { logger, removeMeta } from '../../../../logger';
 import { getAdditionalFiles } from '../../../../modules/manager/npm/post-update';
-import { Pr, platform } from '../../../../modules/platform';
+import type { Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import {
   ensureComment,
   ensureCommentRemoval,
diff --git a/lib/workers/repository/update/branch/schedule.ts b/lib/workers/repository/update/branch/schedule.ts
index 78f186cd53..f6ea109492 100644
--- a/lib/workers/repository/update/branch/schedule.ts
+++ b/lib/workers/repository/update/branch/schedule.ts
@@ -1,13 +1,13 @@
 import later from '@breejs/later';
 import is from '@sindresorhus/is';
-import {
+import type {
   CronExpression,
   DayOfTheMonthRange,
   DayOfTheWeekRange,
   HourRange,
   MonthRange,
-  parseExpression,
 } from 'cron-parser';
+import { parseExpression } from 'cron-parser';
 import cronstrue from 'cronstrue';
 import { DateTime } from 'luxon';
 import { fixShortHours } from '../../../../config/migration';
diff --git a/lib/workers/repository/update/branch/status-checks.spec.ts b/lib/workers/repository/update/branch/status-checks.spec.ts
index ff6c8f21e1..ac8889def1 100644
--- a/lib/workers/repository/update/branch/status-checks.spec.ts
+++ b/lib/workers/repository/update/branch/status-checks.spec.ts
@@ -1,8 +1,8 @@
-import { RenovateConfig, partial, platform } from '../../../../../test/util';
+import type { RenovateConfig } from '../../../../../test/util';
+import { partial, platform } from '../../../../../test/util';
 import { logger } from '../../../../logger';
+import type { ConfidenceConfig, StabilityConfig } from './status-checks';
 import {
-  ConfidenceConfig,
-  StabilityConfig,
   resolveBranchStatus,
   setConfidence,
   setStability,
diff --git a/lib/workers/repository/update/pr/automerge.ts b/lib/workers/repository/update/pr/automerge.ts
index 9441e07b21..2ace410741 100644
--- a/lib/workers/repository/update/pr/automerge.ts
+++ b/lib/workers/repository/update/pr/automerge.ts
@@ -1,7 +1,8 @@
 // TODO #22198
 import { GlobalConfig } from '../../../../config/global';
 import { logger } from '../../../../logger';
-import { Pr, platform } from '../../../../modules/platform';
+import type { Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import {
   ensureComment,
   ensureCommentRemoval,
diff --git a/lib/workers/repository/update/pr/body/index.ts b/lib/workers/repository/update/pr/body/index.ts
index ccd682f9eb..1c1e5d8d1f 100644
--- a/lib/workers/repository/update/pr/body/index.ts
+++ b/lib/workers/repository/update/pr/body/index.ts
@@ -1,5 +1,6 @@
 import type { RenovateConfig } from '../../../../../config/types';
-import { PrDebugData, platform } from '../../../../../modules/platform';
+import type { PrDebugData } from '../../../../../modules/platform';
+import { platform } from '../../../../../modules/platform';
 import { regEx } from '../../../../../util/regex';
 import { toBase64 } from '../../../../../util/string';
 import * as template from '../../../../../util/template';
diff --git a/lib/workers/repository/update/pr/changelog/gitea/index.ts b/lib/workers/repository/update/pr/changelog/gitea/index.ts
index 678480c219..141b1872bd 100644
--- a/lib/workers/repository/update/pr/changelog/gitea/index.ts
+++ b/lib/workers/repository/update/pr/changelog/gitea/index.ts
@@ -1,9 +1,9 @@
 import changelogFilenameRegex from 'changelog-filename-regex';
 import { logger } from '../../../../../../logger';
 import { ReleasesSchema } from '../../../../../../modules/datasource/gitea-releases/schema';
+import type { ContentsResponse } from '../../../../../../modules/platform/gitea/schema';
 import {
   ContentsListResponseSchema,
-  ContentsResponse,
   ContentsResponseSchema,
 } from '../../../../../../modules/platform/gitea/schema';
 import { GiteaHttp } from '../../../../../../util/http/gitea';
diff --git a/lib/workers/repository/update/pr/changelog/releases.ts b/lib/workers/repository/update/pr/changelog/releases.ts
index 08cfbfaf4a..42e5747aab 100644
--- a/lib/workers/repository/update/pr/changelog/releases.ts
+++ b/lib/workers/repository/update/pr/changelog/releases.ts
@@ -1,11 +1,12 @@
 // TODO #22198
 import { logger } from '../../../../../logger';
+import type { Release } from '../../../../../modules/datasource';
 import {
-  Release,
   getPkgReleases,
   isGetPkgReleasesConfig,
 } from '../../../../../modules/datasource';
-import { VersioningApi, get } from '../../../../../modules/versioning';
+import type { VersioningApi } from '../../../../../modules/versioning';
+import { get } from '../../../../../modules/versioning';
 import { coerceArray } from '../../../../../util/array';
 import type { BranchUpgradeConfig } from '../../../../types';
 
diff --git a/lib/workers/repository/update/pr/index.ts b/lib/workers/repository/update/pr/index.ts
index 100626dd6c..f57b619c02 100644
--- a/lib/workers/repository/update/pr/index.ts
+++ b/lib/workers/repository/update/pr/index.ts
@@ -8,13 +8,13 @@ import {
 } from '../../../../constants/error-messages';
 import { pkg } from '../../../../expose.cjs';
 import { logger } from '../../../../logger';
-import {
+import type {
   PlatformPrOptions,
   Pr,
   PrDebugData,
   UpdatePrConfig,
-  platform,
 } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import { ensureComment } from '../../../../modules/platform/comment';
 import {
   getPrBodyStruct,
diff --git a/lib/workers/repository/update/pr/participants.ts b/lib/workers/repository/update/pr/participants.ts
index 28ebedd75e..c9cfa935d9 100644
--- a/lib/workers/repository/update/pr/participants.ts
+++ b/lib/workers/repository/update/pr/participants.ts
@@ -2,7 +2,8 @@ import is from '@sindresorhus/is';
 import { GlobalConfig } from '../../../../config/global';
 import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
-import { Pr, platform } from '../../../../modules/platform';
+import type { Pr } from '../../../../modules/platform';
+import { platform } from '../../../../modules/platform';
 import { noLeadingAtSymbol } from '../../../../util/common';
 import { sampleSize } from '../../../../util/sample';
 import { codeOwnersForPr } from './code-owners';
diff --git a/lib/workers/repository/updates/branchify.spec.ts b/lib/workers/repository/updates/branchify.spec.ts
index 1a52fdd718..a4bcb1fb5e 100644
--- a/lib/workers/repository/updates/branchify.spec.ts
+++ b/lib/workers/repository/updates/branchify.spec.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, mocked } from '../../../../test/util';
+import type { RenovateConfig } from '../../../../test/util';
+import { mocked } from '../../../../test/util';
 import { getConfig } from '../../../config/defaults';
 import * as _changelog from '../changelog';
 import { branchifyUpgrades } from './branchify';
diff --git a/test/fixtures.ts b/test/fixtures.ts
index 4b33dea72d..a65cf54fd7 100644
--- a/test/fixtures.ts
+++ b/test/fixtures.ts
@@ -1,7 +1,8 @@
 import fs from 'node:fs';
 import type { PathLike, Stats } from 'node:fs';
 import callsite from 'callsite';
-import { DirectoryJSON, fs as memfs, vol } from 'memfs';
+import type { DirectoryJSON } from 'memfs';
+import { fs as memfs, vol } from 'memfs';
 import type { TDataOut } from 'memfs/lib/encoding';
 import upath from 'upath';
 
diff --git a/test/graphql-snapshot.ts b/test/graphql-snapshot.ts
index 6ad2b298f1..8a4ba24422 100644
--- a/test/graphql-snapshot.ts
+++ b/test/graphql-snapshot.ts
@@ -1,18 +1,17 @@
 import is from '@sindresorhus/is';
-import {
+import type {
   ArgumentNode,
   DefinitionNode,
   DocumentNode,
   FieldNode,
-  Kind,
   OperationDefinitionNode,
   SelectionNode,
   SelectionSetNode,
   TypeNode,
   ValueNode,
   VariableDefinitionNode,
-  parse,
 } from 'graphql/language';
+import { Kind, parse } from 'graphql/language';
 
 function isOperationDefinitionNode(
   def: DefinitionNode,
diff --git a/test/util.ts b/test/util.ts
index 528bb5db07..cb689c3af5 100644
--- a/test/util.ts
+++ b/test/util.ts
@@ -5,7 +5,8 @@ import type { Plugin } from 'pretty-format';
 import upath from 'upath';
 import type { RenovateConfig } from '../lib/config/types';
 import * as _logger from '../lib/logger';
-import { Platform, platform as _platform } from '../lib/modules/platform';
+import type { Platform } from '../lib/modules/platform';
+import { platform as _platform } from '../lib/modules/platform';
 import { scm as _scm } from '../lib/modules/platform/scm';
 import * as _env from '../lib/util/exec/env';
 import * as _fs from '../lib/util/fs';
diff --git a/tools/docs/datasources.ts b/tools/docs/datasources.ts
index 2d461d0b25..0dbb751ac2 100644
--- a/tools/docs/datasources.ts
+++ b/tools/docs/datasources.ts
@@ -1,7 +1,8 @@
 import { codeBlock } from 'common-tags';
 import { getDatasources } from '../../lib/modules/datasource';
 import { readFile, updateFile } from '../utils';
-import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items';
+import type { OpenItems } from './github-query-items';
+import { generateFeatureAndBugMarkdown } from './github-query-items';
 import {
   formatDescription,
   formatUrls,
diff --git a/tools/docs/manager.ts b/tools/docs/manager.ts
index 11c140b27b..73da0d3c09 100644
--- a/tools/docs/manager.ts
+++ b/tools/docs/manager.ts
@@ -7,7 +7,8 @@ import {
   isCustomManager,
 } from '../../lib/modules/manager/custom';
 import { readFile, updateFile } from '../utils';
-import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items';
+import type { OpenItems } from './github-query-items';
+import { generateFeatureAndBugMarkdown } from './github-query-items';
 import {
   formatUrls,
   getDisplayName,
diff --git a/tools/docs/platforms.ts b/tools/docs/platforms.ts
index 3e8c1664f4..4c3fd8e1b7 100644
--- a/tools/docs/platforms.ts
+++ b/tools/docs/platforms.ts
@@ -1,7 +1,8 @@
 import { codeBlock } from 'common-tags';
 import { getPlatformList } from '../../lib/modules/platform';
 import { readFile, updateFile } from '../utils';
-import { OpenItems, generateFeatureAndBugMarkdown } from './github-query-items';
+import type { OpenItems } from './github-query-items';
+import { generateFeatureAndBugMarkdown } from './github-query-items';
 import { getModuleLink, replaceContent } from './utils';
 
 export async function generatePlatforms(
diff --git a/tools/mkdocs.ts b/tools/mkdocs.ts
index 0f7543da8d..95d27fe6d1 100644
--- a/tools/mkdocs.ts
+++ b/tools/mkdocs.ts
@@ -1,4 +1,4 @@
-import { SpawnSyncReturns } from 'child_process';
+import type { SpawnSyncReturns } from 'child_process';
 import { Command } from 'commander';
 import fs from 'fs-extra';
 import { logger } from '../lib/logger';
-- 
GitLab