diff --git a/.eslintrc.js b/.eslintrc.js
index 43f6d809d5114ccd87529d806bf94f66a2ba4298..0366f5cf5175df6108b4a61d9b80ed898ff02bb4 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 f84473c5ff3705a57dfa93a5277e75f7320deafc..80b6d569c564c2357f45a07be2127fa11f82f7d2 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 6ee80afd1d917f55107a3fb857f3c8c5af540c2c..620cbe190d52421b64021a28a3e35a251af69ff0 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 30f8ce6de1f4bfeea974021559b6383606eee791..186c1480fa1d62b3c193e8823d87c102de4d124a 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 028fe3f741a04b14bd7a8f09506103af058aeb4d..4f33813c9bd90fd01366839b13f02bf6ff540199 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 68952cd5136eca276f16d4ed1916c232a2c3107c..b6a793b5c8844b5fd36e5b4e0dec08eabe60d0f5 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 ceebba76c1dcd0af2f19b0b97d8aca89279a02cf..6d0e23c1d8b1f3cb67dbea2ccb3c819df10f912d 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 f0c600befd313fbef70c754bc6058de703ac50ed..6cc304ceac4d83d77e5ccac232bb78c01b0745db 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 0867781afc147099d8721c3e25efd3f173c1387a..f069ef5a52777ebee317dcb228d7da8e1aea3029 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 1f263ba8e0496ef96be937c0067a889c444be37c..0dd8bed1cbced16201ce7efc9d081b6b2cf6957e 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 0697be378576fdb1372c016b36c83be92e270f10..cc3a81a06e3fdc34c363a96783e02f21ffff3248 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 7882cdb87c96d3076931ea5621669fab748c32ee..c01dd03a0a4953f3952316296d7f0f6518840450 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 1a97be3488a0ea2289a1e9af1bc6fb7b72473abb..246863d46f6eb647a9fa15c114792b69b48c64b7 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 4a2d1be216f77795683193021f9ebe4ccd103c16..fc0981763c1a78a5b103b337f71427962e9ff271 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 0380dbffdbf5e7b2ea3f39dedc99faeaafb7b7e0..ce2eb46517602b19ad45c31ff8b653b1437783d9 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 f318e3d2c11c807ea46ff1f2cb2fbac276e70b07..66bc164f1517c6877728d439e1fff76cfb663264 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 83207d8ccd4853606682b6f352548831fe0c82c9..f5ff2c55de4a6573fd695a877887e0ff73215cec 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 d0b345d905fb560dc71002bcde5a3ac415d209aa..26370d9b751d285a210dc7bf0c5d2eab31bb01ac 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 fef07896ed597232db520d6cb1caf1a2adabbbc1..a289e79682dfa5aafef315655b2c7387d92a693f 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 7db80457e1b4de28ecec06e5e9b801b64b18996f..8bcb275fdf541e98ce5996cb70ed5323ed3334d8 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 d51f6f1f025a1ddc030f3334894c440534d787f4..0f818c4fa75435dc4c9882469852379a8a66e9c4 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 68a88161a48cb60747164145120211ddd11a045f..f5c37a9a5b955aad5c1ea1720f1af79907f33e1c 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 618cd30c1283e3016a7a0fa0fe1d951af53f2dfb..48c89d34b4a6fd30955a62d842b693c3b3b3bb9c 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 a0e06db3de0b25813aa8faac05d4ea1a62be3e6f..f48781cdc9ba2d1520aaf35bab23e69127b5509d 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 f427929c1e3051ec46dc07dbbd541cadc258904d..f54129488f650e7226696fd82f07b497cd862fa3 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 28e66cc29ede186d1112bda748819990363ee772..09c3d6d0695d4d92db6a38b276d329ce22462d22 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 24270848419ec6afd61adb309eb0160a76646f8c..5a6ca75ff8297a963d415679ec400516634bbd48 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 24298d4a6c5e90219560e78173e113dd5daa6a01..a54bbb03e61085ad4ee0c096f990f4974efd69b0 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 45b06fe83d2c79eda76d2a40b5a2da01f493291b..63a42e0fc39e03511ceb7c755fe577f16b2fa61b 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 7a814f0100f3f3d2d1151d5f09385e3798ae4a57..7a7b3d8596c9aa1f6fc30f9f5efc907d401a302d 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 146245adbdfa3c38fc5e1f4c4477db7f7e65c30c..048471c6504d39eee84bb707c7523d81d2e421f4 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 072563de75d8752350d8fa107a948098bda56857..cec40f5d69995d322c71497e7352824a13853a23 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 13ea7ef85d7382611e49bdf6c2b55c33f82c1248..bffb32ad007445dccc2f9895bb21d8f80a8ba374 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 a668740a2500c29f6b385ff03f395327290e2d1f..364df76a8ae1d19fc553a6e1771e0ea8c50a6016 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 9a7f00a31d365f14363ea68f5046f09055ec7d5f..8f399635d60416cc7693b7dd0392b5ee21adf913 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 b268c5f6859c2c349019da33c7fde0f6720702cb..bee65e98a45af2a430a1cfc530b9237b7ed378cf 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 5bb6daea00460b99cf77b5576f1ce678a60847fa..fce3e496a773396eb66e206580f940cd4ef445c1 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 dc9b026573f5f632fda7ee297018bbaff013f1f4..3013a6b2396a843d44818ae4b375cd9cd474b8ea 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 08114ff856f030106b3a8b81c00d0acec972219e..246efcfa2a0c7009789a359a9155e70cb7384d3c 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 3d9d5417777f963313257be47c2ba1525d5fd773..997ac4f42b169f74ef9970c5ce5ca11e480060eb 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 7334b7186b4b000e728038ec37054cb399df48da..337ca415ec9d92f2327233b2cef4cf4da9b0eb34 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 3ce9ba21ded27f4b4f83e1c512d173468968179c..ed8c25d3df6266c229e8e36b8703a6b55f051b7a 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 3a26d0e5d405a504d4a4acd61b775d5e062a3c37..dc16fcccc6383746450c29183cc5df6efc7c93d6 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 d0c43112f0cbc78c3156d727abcb670ef20cc82b..a46e485252dd27b0c0e3effa1c47063daeb4f427 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 115dd6b0662b507526fea795a0beb90d563763c7..b22261c0a85162604575ba9b80b5c7e223358c00 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 3828795d846acdcce61813a61f709973df6e4516..9aa41b16c1ae06f2c9fc0b3f9f5a1b7d649e7946 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 f13a4c6736127609f7858d4fcd6471629e5c247c..5664b2ee67d980766a29073d63d9e62b4f372aea 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 8ca8a4c63d0d1dc42c759f2467ab0741746519d9..75a5cbf9b9a0348cd64e17d1b76f0fcea8576bb1 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 9d14c78ad69ced762b0f9bd6dc8e4f7a1c038f1d..0b9fbba90638e0fb3ea51c792a2efe3a56b23662 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 6b3e246d11c27ea471e4fe6e8b83b938da795738..3df4cc0e16810b82ec4e31e872f9d4607263c3eb 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 d1e01dc27a1e03d57e3b38715bed45e9f984f405..2b2257dc75f5cc28d73bca3d67ab0efcf4676cca 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 b1d877888064507bf20438685ec4f1dff7d265a3..18fc5e9091e0f07c123574aa501b6c3118ac2ef9 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 654e2f8b6f8e7988a5ad50d14f991f77e0642a53..d40c34be61b4089f34485ec0ad58f38958c52a99 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 be2ae5fe88454cdf6e3da02d743e6afb578351eb..19961664e499a682f8b9a4a7bc6c24987cee30a3 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 91a3521b0c5fe97760109e7abc10a76ab6a0cdb8..b04d6830ff5cb31f5f5ae7817944953a896eecc7 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 54cf05773aaf97256697bde8af56ab3aa676660d..38126468e4462f94df879f6e26085bbb599e9c7f 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 dcc3bb8cc2f4474334f9580c806e4636c8c4dcf0..03c5f39b545fb62c698183873534c0156e3acbec 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 d1bb84626b572d4bf7f4f5dbc52ac7ea233232f5..c2b362f5f54457c5f024434be857285c6260293e 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 5cdb047e917969f8f331c28e9080388ce4e05a18..654dc75897ae2d54c24c22ffa0e946d9ccdcbb80 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 9617894a2f3ee3beebd072bcbc78107983eab56e..687d4ac4bdcb50f23f09c566fb079d766c91f0cd 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 a0643e9728eca1051bf165eab11d0e8932bc22e5..4453319bd9cba6700998ca9fea3d9ddc16026613 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 df85b8ce5bfa75756d4b1c8d4e3d5f5b1915a428..6c591b7916f4ccc691e6686486e051be39a2243b 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 b51609c99eaf755ca10db6ab61fe852a336d489f..bde55b218e2bdbbd8ac15b54efb996a510ac9d77 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 c88cb5c7e1e934722a55331e61b341c6943f92b9..9e268f21c3ad76038065021444eb6329258e35ce 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 9f6d3cc63b9dac22e092c7ae6fad65d887780d8d..30490df8d88934a5be537098d3938f407d84b317 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 f9dc89ff2f920fa5c7ada0b2d976628103c8f4d8..3fb4602d5547f63bd0867c782f7a989699b7005b 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 7f4257d8cc7dc3e59e55a7487466cdd04e003b22..bfeb72ebd043d1dd88df5ba59e6a17e07a4c313a 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 80f85036f7de79412b8112c16581b6e8c2a23534..13356c9211da50dca644b9754b999bfec5b0c4e8 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 9ca3563961bcb5e49be4c7b5102423f9d7c97e9c..74ca2ab7d27f5a658e3bd1daee1f839fd5ca7521 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 4880d4d11dbe93a482c6a0b75ad5a54df933f5e9..7951075b29686c4596ab106e5cd479d2d3fa7059 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 e249c401b25c3f9329f5ab0342c10e0810b1c58b..75ff969775db8fdf2b92fdee7d82200a15c2bc85 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 9a2164d0c2f0dcd2edc4fdb346cbef63c931fecf..c10e5d16012af460e4693e489a211aac0cb44e31 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 fffa9dc5d131061dddaea9d832745d97efc1a643..2514faf3e746721600143db02ecc4a66798866c0 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 c2d028b4bdfb0297080dc40d75b40c0f8aa55d4a..749364ddf5ad4e277a7226799717cada4ba86e87 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 89dc811426ce1b6e77772d0f84f1e4207c37816b..749a511eb4733d2b0bd3f938437aa4707db0638a 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 9f36c3ecc020a5e9b36030930b7e5b0c7b274fde..a47f2efd31dbdd8cf1ed2e238dc70b08a444b705 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 885e2c269911c8615ffa11f806fafefc12736d21..fcb43b7bc9ae887e2964f82784150b5c96671413 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 d96a70c4aa2f8e8fd2f4a501dde042a334e0871e..4bafdc04e1188b72690718192dd83da9aaf5773c 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 e434d4a8ae6436a91efbe0241f39bfc099ee3283..0fe2dd50db4ab66e47a0f9af6268684d5a2624cf 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 a196189d5b4021ca3d1f48c2a0b57aac04d0876f..23c10689c327e9e22a326461f8cd43db0bbe25f8 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 4308a70abf4356177b455ee64a3b2d8f5a545105..5aafc0f5c502095d751749750e38d28ec2575261 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 863e9e05b76097644d35f914e3dcd8bf0e39c6cc..226cc164ff23836cbb6cea558759b814c1918538 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 31a1624076b51d1ab61eddbaef615d53748dcf4c..f755f8b5ccf3ae9c34daac8297a41c7c5a83bed6 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 6679e1f859a896978e6da8ba81ec954f8f731d04..bb370e90a5647448095c9b3a088a57ee104e4eb3 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 b826fdfd62302e49584a36a0da6b78f697a2855d..ca4369fca7d0df9225b6d8b287d7b2ffd206a6c6 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 dc5ac03f35903917769718040c0969e531f8c2c1..23440940a992d26a451f1c57d4e51504cde9693a 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 59928b60462503a0c0e8a1879356466f00ed422f..c5aa3ddec2868a42368876ed0954eb03ea109264 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 76a8bee6e3643cab90686fb2b5ee8d470e56fd30..80f73110ed3e41f4d02891d44f185d30f51e206b 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 1acb75945b2e91976da436e5d3620b7a761bb2ce..b5be4a7bd08512ae200b836a18f233dc726374b2 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 5057410492f1b0b493b57b272aea2c03aad5d9c5..1a0f2f1ace7003bc111f31cd03374b0508b0a147 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 216e10f674c588f03eb8765e0000d18275db28ea..b15e8f6a3ac021c5731058658147708a88fab180 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 afeda96e9bd9486e56c99b5e62cf1865df1f7fad..7a9d6569659f10df9c00e7e1d8e174f5ca1963fe 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 1fef56d3814cc3b685e338739117fa7f7fefdaa8..4e54fac8fd93fcbbcee699fb82ab257a0f01f3be 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 0167dc9edec598ec84f4da9bc29e33aceba26daa..3f75fc683fbf6bb1c22d207626a2fe866761d2f5 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 29d32d859df61c5c6561b9b526b82aa84a9a234d..17008c8aabcdc707895910aa5252ca36b62a6b9b 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 05ad8f0c032c9b643431044c4ab0265d8741ddeb..a5f502ef1301e5f58aca189a9a9f5f9c8bf2de66 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 f82fdb152d829529cce2e1c02cbf7c243f11a708..d5e5fdf4775ffd0ba6a072189d46c4389b0a858b 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 7eb2ca7c61cc006a47298047f906aeec5b87b09c..36f65fa0e1bc7921043b2d0196b627f00a763a25 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 07d0e3284fab32e62e8e94e929220f0ef93d3356..7d64e8b088ce6f6d7b456f7463a5e2a60009de89 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 00c96640df67c859609a83129f5ee161ba7017ad..70be6ff6d00d76003e7961d980638a05566f881b 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 b85d6ba3ee6d9742783671a3ae22ac6d8a9335e4..71400e0205d7860b0150c137a72ac1ff2589ef3d 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 438d2316a14e8b9ad5132f33274f0934e0130b37..8d2d102fbf5b14d1b02f9923eb45ac7e30869891 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 e0cbe20bbb64511bf9f106c9a556ff80bab1cca2..42bf18d134e9329c75a2b846ed65bf39a69b9b65 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 cdcb82e5cb35f972f2d115cb9de4e6ce69ed6fef..8ad1ac623f37e76173a3c087ff9461ba8416d295 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 5ba23bf6601d55e0c0ea51b0e7a51cdcb6a93fb8..ac3b669e4ee7f5f6f3e1bb59044afbfe5aeb5041 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 4a4f114602728dfb84fe580dba7c0af9508bbb44..73f1ea7446c2bcdbcd775fafdb69b434c5746511 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 eb58fd3625b6ab2839a3183fc5650cb038612259..f642a7ecaa777acc6bb4009d30833c1eb14dd040 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 cea1cd399bb21f6d78c40b4f336d81337bd0b556..7a977a020d4ac2558c6540a6316406e5ffdef1ef 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 6d6dd7957ddc7f7921cedfebca7112277f72447b..ba139bf80a4c330a972a3c83a83281916bccdbf3 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 6ff867cafe8216235f84f8e31f1709475a9c28ba..1529ecd02d6ec13f024dffaece248027ced63fff 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 4f7539da94a1454ec488c9b890eb3e4812c09671..34ce5a691ecfa4e1018b12c26f10d89c6bce03bf 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 5474e655dee1141596dc0f1f7845f367132dd772..b8b57386deb23bada83c88119ec13d50323bad45 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 892e2ae91f230231d63ae6a109fc64f31b15f3c6..9058beb1b4cff3336963857278572c98b10473e8 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 a47e4a40c4d5eb239e5ace4b04dd36ad61cd6bb8..a307ac8d7a3d428c2bc0104c439a56507277a999 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 407c50aaa227f82ca1bc35f99ebd451d1384ae1b..67098d72b2c72ce2d547b3427b6301d3ef2678f9 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 3df7eede2f3be1edc02a50abdc133a31cc8f8366..18355a1bc6dc6aa40556e2cf9d13b502830bae18 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 6ee3c4a84e185949254023ae2c85298b10e51df3..dd9c31464eb07bd705934de8349d5c1afe1b0908 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 507b6313d0623a5f53adceb93c8f88e826c1e6c0..e0b118eccf49e258b85341c3c68a4db86beaad86 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 3e524e79c74591681a0047838df87343f88e4023..b0f9f6170c37858a42c1c91080d06b6e0e6a7060 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 2862c8ef507a075957cc2874105a97cb3665dc41..507fada5d197a9c1a58a0c13225140b78674b19a 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 2ce7be2015fc21b99f49a28fc65ba617d603b721..cc8b1573b675761448f1d0ba0704c217e69b2ae0 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 f104d009750d7d24720e6c7e8081db9a2f34189e..162d60b5ce07e2681f0c6798acbb270394191eb3 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 c7c4113d3206102eab1f018587dda1c529645f28..606666fa3072b90ccfb9c9fa579105bc1da4e700 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 63f0b79cea660a8a11aedb76ce68259190f92813..8a0c6edd53bf6bc831ec6c3b82196c8a231cb2eb 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 c5eefe6d541f51e9394ae1ccec26fcad9b19cc02..0ae61dc68e96d926776e623055948d159d2ba344 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 fb5c735bde65a4072471cbe4355c048c955ca37c..18a8bdf3c8d8a85922c548a84a109096c8a718f3 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 021836c21c783668bfca9b3ec2c4779da0fe9a1a..abc2dd622cd94af8d980a60580597a83c2423721 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 4fee6525739f7e4a6d6aed53316c667c63c1a7f9..1573c9ef1a314727281cadb097e293c2bda07ab1 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 a9087eb2c667cb796e81615a5a726ea589cb77fa..496fc82ab426f2b06171483dd20158f4d7e4f405 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 e092fb1a20e63f0615deff089f74a92bf2a00095..11960e3084c08682ec434ff5d8b274c19aae396e 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 62068c172c584cef5043e81bc25bc851154645b6..652c15caf22c867111b5482435f9de736c00d082 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 2e2c1c0e4b45aca90d706b66817d34b64239856f..25536aad0486045ebeba2669417fba0199ead97a 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 d03c7319e97637474f95b18cbd0ad3960ca70ee8..ad667e23e4b99b588b97d02b127d9807f0ce07fe 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 c0a9138776390728e38bfb64131716d182491f5a..296d9beda1411a89274db6fb57ff1d8ffc811624 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 4f96f0181189050898b0358915922df521195835..54e412fa97d74cc80cf2a54ae367dd117557d8ed 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 8f21f936db2e407a50de721e5e7c990493adfe40..5e284c6671c30d94cda168ab2a1fda1dcca0554d 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 7cc7a92a057cecdfcc156aa9ca793dd11fa13f1a..23e1a27d14534d3a3d1a84d18dd8f5a1c26199a6 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 1be284c8e9c536dc0ac878f5d3eb2f019bce9122..f0e61ba2c39514676f05a57772f088e5f3b3a218 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 1761e95932037c39aff2503671076d1ee1447469..1eb22c0767c8078aeb7d146184610798f82d6ac4 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 c0b1f61591ce1f4e0a8849577c62283a07b41f60..186b23a5b09e1433a5ed8e8cebab3c56243dd243 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 88d9ed417199328d1a690a9c9e5ce5a05914d939..238b8b939cd5a7c0e9481dfda136718b0e0d0bc3 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 2d63a39461e459c13c3a677fd8173db5695fc65d..eff82ee09cf1e09db78daada3cac9de2b65b95eb 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 d7a472e6cfa1e5ddfd16e29a646d3e7f88fea087..82961dbe7a0206e43ea282d7671be4c7aa163e68 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 6186f75af3b56df0a0eab2be4694f780c8301efe..5fe8a211cfcd8b2995b7c2fccaefc92dce2fdf45 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 52019e65ab06adc43b6d0d6f26a7c7916ed2a8ec..803ab8ce7867249ddb90de49c50249e219c43a2b 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 140a1ae6c941563ed717b1a37941b042501e716c..399e5f8a7dd88eaebb036c1458d534d9935ab764 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 030ce3680d93debfbeddea01d29bd0abf14c2248..ecf18987c0c5c63693b374cddc3655c2db82ea86 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 79857de4e3aaf1aeda9c34e5b56cbb8623e5bcc7..6e1637628b170ec2999871be0f4bfc496e9ae99e 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 a7b611d659ee567ef0ba84710efc956a9f023622..e31b055a9e78e08f119801b8b7c71bf7cbe86185 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 c8d4090c5321050fa7a42efceb8882baa8d8c218..172a6cb4566d8337957db672bc046ada7d90d88a 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 95006f1deab99fae75dd78fc30a718bd3928b08a..28fb4ad62234a1c78e13bba9521f5d549cf73374 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 7eaec1922697d142d2b3f3be18dd1c6494906ead..8fb4ef3b0ebb2cada6cfb996349f43ef9c8ce126 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 98fa41721c51a1c82c5beb1ab0a8eb9ba78c8cdc..93e3810664487384ed56eee6e7984046af8aee14 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 e5e9b68b3c85fdbe746dead74bf55215656cf78e..55aae025e095c89baed13fc25dec1a7b7e03ae5b 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 7c57e5a0b67a409adf0dfcf4a64463e1b0b7ceec..c4167937ac1fd1cd678db0d3fd623eae3a109851 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 29f81b96700fe7d4c5012f73c920fb803ff017c5..f8ae199bbaba7376228eb9d4b3147662e6d92006 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 41afa47eb2f0610fc0cdb6053ef2249c45f2f091..05624d0835eac0b372f0aab743bfd882cc15bfc9 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 8b41ecd50a37387a47df16bb893155491a1e9322..f3a7405fabba465be6073b081b2c648ec21e9fdf 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 4729c1e9ef156139ff21b1b3c24c12e780e53bed..ac35bf878889467398ec36a6f4953157df723c9d 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 99b648d0b414a546ddfc3387ad608135483f48c6..39e54c87274e83d1b428ccb6fbdcdbe88645dd9d 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 db588a0484344532123040932734a14f2ab575be..7321b453f53c166c4d80e8b42770a5561f00f827 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 7c6248d0e362ab7bb7ca9fafd684dc1520bb92c5..c342a6120288505416d53edc056002052cf40f5e 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 b5de4592f15ed3705740cdedaa5624c248ab8cb4..e88b3e5b321229d48cdce98e6fbc1fdad6f4f1cf 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 78f186cd5378d3e90b4edeede0feeecc7bde3c76..f6ea10949260b2e672dbaeea39308a5c2fb91133 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 ff6c8f21e127052f9738fa22ea9ae5c181f51154..ac8889def16289e3b19c7f2074d1aa18ac48cbf8 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 9441e07b21f5d9e0bf13fae3a9290efc0a1fe4ed..2ace410741b3b8fc915421453656dcd29962a85f 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 ccd682f9eb59cc214576aa3e2da4cd6cb3ac483e..1c1e5d8d1f9e88996a949b1182b97f57cad3c37d 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 678480c219b222030e0b599577568ae197bd0cf8..141b1872bd86c12dc02c80dcf202f130fab77534 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 08cfbfaf4a1586064d60d804d186cc9fad7427f4..42e5747aab904940c8b60e4911b36c6b495f0377 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 100626dd6c513b9d352845500fcd49325a7bc480..f57b619c02acb1d1298245062306c0b8552a0756 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 28ebedd75e61c2fd03a9700817e5845e8e4a9eec..c9cfa935d928e64ba47d389983c67fed98e10e81 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 1a52fdd718c852ee90168bfc56f6c4a3c63d0fa8..a4bcb1fb5e3e1908be9d07a589fdcaa4006e09be 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 4b33dea72d1b11bd9e697eceb8dbb80fb8964fd5..a65cf54fd75ef0d3cdd74607dc10309960c68d14 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 6ad2b298f1998d5a5bfd43476aca782209fdbff4..8a4ba24422fd3ea93339817b74e88967ad95e725 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 528bb5db07dce1d8c9c5e7b18f5012175b7c41f9..cb689c3af5d10317f998e6bf559f753e7f1c1392 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 2d461d0b25e5ed3ef6013bfc0c64d132bf7834dd..0dbb751ac27bd802fc23edfbf3804efd2319678e 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 11c140b27b47e13b1126a83c3852df9e5baddbe8..73da0d3c09ff045a162eb23d3375456c4b4d8952 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 3e8c1664f46490a75626d1ceae51a38d68419168..4c3fd8e1b7f825cd3e886c4886721632663f8ba1 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 0f7543da8db1d2db14b5a42e5e297bb52f91b06b..95d27fe6d17f9c1eb35f74ac53e310fd67b1c8aa 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';