diff --git a/lib/config/decrypt.spec.ts b/lib/config/decrypt.spec.ts
index 5bf81c44afcd39faf0b8fb3fe7a3d2442252c74d..f0f604e60a3a1893e341dd7ee36495cb8ddd538b 100644
--- a/lib/config/decrypt.spec.ts
+++ b/lib/config/decrypt.spec.ts
@@ -2,7 +2,7 @@ import fs from 'fs';
 import { getName } from '../../test/util';
 import { setAdminConfig } from './admin';
 import { decryptConfig } from './decrypt';
-import { RenovateConfig } from '.';
+import type { RenovateConfig } from './types';
 
 const privateKey = fs.readFileSync('lib/config/keys/__fixtures__/private.pem');
 
diff --git a/lib/config/index.ts b/lib/config/index.ts
index 9a13ac0b95fbaa6a598784b6b9753a73d791c55d..6fbe43fc3c351cc27ba10e50d8ef6c605c7c544a 100644
--- a/lib/config/index.ts
+++ b/lib/config/index.ts
@@ -10,19 +10,14 @@ import * as fileParser from './file';
 import { resolveConfigPresets } from './presets';
 import type {
   GlobalConfig,
+  ManagerConfig,
   RenovateConfig,
   RenovateConfigStage,
 } from './types';
 import { mergeChildConfig } from './utils';
 
-export * from './types';
 export { mergeChildConfig };
 
-export interface ManagerConfig extends RenovateConfig {
-  language: string;
-  manager: string;
-}
-
 export function getManagerConfig(
   config: RenovateConfig,
   manager: string
diff --git a/lib/config/massage.spec.ts b/lib/config/massage.spec.ts
index 54ee01afca69f1ad9f657517af941b0a266caac3..19693d5a041230e36adffedee30c02e470fd322a 100644
--- a/lib/config/massage.spec.ts
+++ b/lib/config/massage.spec.ts
@@ -1,6 +1,6 @@
 import { getName } from '../../test/util';
 import * as massage from './massage';
-import { RenovateConfig } from '.';
+import type { RenovateConfig } from './types';
 
 describe(getName(__filename), () => {
   describe('massageConfig', () => {
diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts
index afcfbfef681aecf340a8d8f68c88b970b47c8e01..7bd348c5ea4996a320f7968d26a181810918e321 100644
--- a/lib/config/migration.spec.ts
+++ b/lib/config/migration.spec.ts
@@ -3,7 +3,10 @@ import { PLATFORM_TYPE_GITHUB } from '../constants/platforms';
 import { getConfig } from './defaults';
 import * as configMigration from './migration';
 import { MigratedConfig } from './migration';
-import { RenovateSharedConfig, RenovateConfig as _RenovateConfig } from '.';
+import type {
+  RenovateSharedConfig,
+  RenovateConfig as _RenovateConfig,
+} from './types';
 
 const defaultConfig = getConfig();
 
diff --git a/lib/config/presets/index.spec.ts b/lib/config/presets/index.spec.ts
index 4ac30172133ce7558d137f24d1f4cb92413eb233..08acc21349fc430847baf0099d3c6157741f38e1 100644
--- a/lib/config/presets/index.spec.ts
+++ b/lib/config/presets/index.spec.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '..';
 import { getName, mocked } from '../../../test/util';
+import type { RenovateConfig } from '../types';
 import presetIkatyang from './__fixtures__/renovate-config-ikatyang.json';
 import * as _local from './local';
 import * as _npm from './npm';
diff --git a/lib/config/types.ts b/lib/config/types.ts
index 7ae1789e6f9a7a18765f3ce7d639cadb52ad3641..21806dd46c7ec6b8d13669f232470b9d18dbcd42 100644
--- a/lib/config/types.ts
+++ b/lib/config/types.ts
@@ -350,3 +350,8 @@ export interface PackageRuleInputConfig extends Record<string, unknown> {
   datasource?: string;
   packageRules?: (PackageRule & PackageRuleInputConfig)[];
 }
+
+export interface ManagerConfig extends RenovateConfig {
+  language: string;
+  manager: string;
+}
diff --git a/lib/config/validation.spec.ts b/lib/config/validation.spec.ts
index 6f52338d391f1d5dbab639efc47fd328658500ca..fe9582f4b37b71cc5a65799635a84f08a20570f7 100644
--- a/lib/config/validation.spec.ts
+++ b/lib/config/validation.spec.ts
@@ -1,6 +1,6 @@
 import { getName } from '../../test/util';
+import type { RenovateConfig } from './types';
 import * as configValidation from './validation';
-import { RenovateConfig } from '.';
 
 describe(getName(__filename), () => {
   describe('getParentName()', () => {
diff --git a/lib/manager/bazel/update.spec.ts b/lib/manager/bazel/update.spec.ts
index 0a28bff4a8fb581d27ef4f92803a894e4450ffb5..41d5fadef24fb024bb407c76cae3ec98fb5e9d8f 100644
--- a/lib/manager/bazel/update.spec.ts
+++ b/lib/manager/bazel/update.spec.ts
@@ -3,7 +3,7 @@ import { Readable } from 'stream';
 import { resolve } from 'upath';
 import * as httpMock from '../../../test/http-mock';
 import { getName } from '../../../test/util';
-import { UpdateType } from '../../config';
+import type { UpdateType } from '../../config/types';
 import { updateDependency } from './update';
 
 const content = readFileSync(
diff --git a/lib/manager/gomod/update.spec.ts b/lib/manager/gomod/update.spec.ts
index 3009615cfb433737142caf584a431d7d068f527c..6dfba946bf02b0b6b0c55985de5f15823b422b3b 100644
--- a/lib/manager/gomod/update.spec.ts
+++ b/lib/manager/gomod/update.spec.ts
@@ -1,6 +1,6 @@
 import { readFileSync } from 'fs';
 import { getName } from '../../../test/util';
-import { UpdateType } from '../../config';
+import type { UpdateType } from '../../config/types';
 import { updateDependency } from './update';
 
 const gomod1 = readFileSync('lib/manager/gomod/__fixtures__/1/go.mod', 'utf8');
diff --git a/lib/util/emoji.ts b/lib/util/emoji.ts
index fbcad748d64f37923da4e1b4464c634044276a81..c5df9713a0d72f0eafa607c8937d739e97cf467d 100644
--- a/lib/util/emoji.ts
+++ b/lib/util/emoji.ts
@@ -1,5 +1,5 @@
 import emoji from 'node-emoji';
-import { RenovateConfig } from '../config';
+import type { RenovateConfig } from '../config/types';
 
 let unicodeEmoji = false;
 
diff --git a/lib/util/package-rules.spec.ts b/lib/util/package-rules.spec.ts
index 05acb9f6dbbaaf908c0e4867e7d9277199101b4d..bdc9cc0fc2c39ec6009d2a1d0bade8e3730ee47f 100644
--- a/lib/util/package-rules.spec.ts
+++ b/lib/util/package-rules.spec.ts
@@ -1,4 +1,4 @@
-import type { PackageRuleInputConfig, UpdateType } from '../config';
+import type { PackageRuleInputConfig, UpdateType } from '../config/types';
 import {
   LANGUAGE_DOCKER,
   LANGUAGE_JAVASCRIPT,
diff --git a/lib/util/package-rules.ts b/lib/util/package-rules.ts
index c268afd89f252a7abb4f737b9be41b3c955c8db1..2524e9fe601143171d28003f23931215b6280c78 100644
--- a/lib/util/package-rules.ts
+++ b/lib/util/package-rules.ts
@@ -1,10 +1,7 @@
 import is from '@sindresorhus/is';
 import minimatch from 'minimatch';
-import {
-  PackageRule,
-  PackageRuleInputConfig,
-  mergeChildConfig,
-} from '../config';
+import { mergeChildConfig } from '../config';
+import type { PackageRule, PackageRuleInputConfig } from '../config/types';
 import { logger } from '../logger';
 import * as allVersioning from '../versioning';
 import { configRegexPredicate, isConfigRegex, regEx } from './regex';
diff --git a/lib/workers/branch/automerge.spec.ts b/lib/workers/branch/automerge.spec.ts
index 0d561f0080da7aeb039cb2c2ad358e944c41020f..d963832fddcf9e5394d58e99971365fe1293f612 100644
--- a/lib/workers/branch/automerge.spec.ts
+++ b/lib/workers/branch/automerge.spec.ts
@@ -1,6 +1,6 @@
 import { defaultConfig, getName, git, platform } from '../../../test/util';
-import { RenovateConfig } from '../../config';
 import { setAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { BranchStatus } from '../../types';
 import { tryBranchAutomerge } from './automerge';
 
diff --git a/lib/workers/branch/automerge.ts b/lib/workers/branch/automerge.ts
index a6298c078046d75c3aca7f2cd4e453c385f4080f..674953beee297fdc2874c0dbf60f4b2b3ee8ab3c 100644
--- a/lib/workers/branch/automerge.ts
+++ b/lib/workers/branch/automerge.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
 import { platform } from '../../platform';
 import { BranchStatus } from '../../types';
diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts
index 9a8eadd8747f6d5295af0ab74cf8befdfb71dd98..ae25f57494cff130485cbdc6659f9ae56a6a73bf 100644
--- a/lib/workers/branch/index.ts
+++ b/lib/workers/branch/index.ts
@@ -1,6 +1,6 @@
 import { DateTime } from 'luxon';
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import {
   CONFIG_VALIDATION,
   MANAGER_LOCKFILE_ERROR,
diff --git a/lib/workers/branch/reuse.spec.ts b/lib/workers/branch/reuse.spec.ts
index 762ed32024f07d91aed857730fc7f70839ac5328..8acbb4e062bd12dc2ed8e2112d7fcb40f95115d3 100644
--- a/lib/workers/branch/reuse.spec.ts
+++ b/lib/workers/branch/reuse.spec.ts
@@ -1,5 +1,5 @@
 import { getName, git, platform } from '../../../test/util';
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import { Pr } from '../../platform';
 import { PrState } from '../../types';
 import { shouldReuseExistingBranch } from './reuse';
diff --git a/lib/workers/branch/reuse.ts b/lib/workers/branch/reuse.ts
index c105d1f2034581dde82de9b31b0ebead6ed54bfd..dabee5d66e463c9276849f36151a94e65e4fa2b7 100644
--- a/lib/workers/branch/reuse.ts
+++ b/lib/workers/branch/reuse.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
 import { platform } from '../../platform';
 import { branchExists, isBranchModified, isBranchStale } from '../../util/git';
diff --git a/lib/workers/branch/schedule.spec.ts b/lib/workers/branch/schedule.spec.ts
index 24c2b4b6d47d20cf2716cfc0c0cdc50d2fe3861e..4848afff0db2c55e8e98dccd65692022b0ffbea0 100644
--- a/lib/workers/branch/schedule.spec.ts
+++ b/lib/workers/branch/schedule.spec.ts
@@ -1,6 +1,6 @@
 import mockDate from 'mockdate';
 import { getName } from '../../../test/util';
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import * as schedule from './schedule';
 
 describe(getName(__filename), () => {
diff --git a/lib/workers/branch/schedule.ts b/lib/workers/branch/schedule.ts
index 009f76a608eb95b71d682ca3393bf21b4d09c062..ec34edaff02a6f32d7fd9894bcf587f9ceec2fa0 100644
--- a/lib/workers/branch/schedule.ts
+++ b/lib/workers/branch/schedule.ts
@@ -1,7 +1,7 @@
 import later from '@breejs/later';
 import is from '@sindresorhus/is';
 import { DateTime } from 'luxon';
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
 
 const scheduleMappings: Record<string, string> = {
diff --git a/lib/workers/branch/status-checks.ts b/lib/workers/branch/status-checks.ts
index eedc10c9125a98d4a64890a697f25a7e9877f2d7..58313744f88c6c7b9f21f08ccfda10978fbb70db 100644
--- a/lib/workers/branch/status-checks.ts
+++ b/lib/workers/branch/status-checks.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
 import { platform } from '../../platform';
 import { BranchStatus } from '../../types';
diff --git a/lib/workers/global/autodiscover.spec.ts b/lib/workers/global/autodiscover.spec.ts
index 7779fcd41ff571a07318db31a3a1ab37a9e2e756..cf0da927bc871953ac8ef9ba9510e0ca05981ca3 100644
--- a/lib/workers/global/autodiscover.spec.ts
+++ b/lib/workers/global/autodiscover.spec.ts
@@ -1,5 +1,5 @@
 import { getName } from '../../../test/util';
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import { PLATFORM_TYPE_GITHUB } from '../../constants/platforms';
 import * as platform from '../../platform';
 import * as _ghApi from '../../platform/github';
diff --git a/lib/workers/global/autodiscover.ts b/lib/workers/global/autodiscover.ts
index 396f32b9e2c19b730eb9b9af5f089f4728c6c73d..bcb993d8dd6f0c78ccf1d9e08813ff1ce7773859 100644
--- a/lib/workers/global/autodiscover.ts
+++ b/lib/workers/global/autodiscover.ts
@@ -1,6 +1,6 @@
 import is from '@sindresorhus/is';
 import minimatch from 'minimatch';
-import { GlobalConfig } from '../../config';
+import type { GlobalConfig } from '../../config/types';
 import { logger } from '../../logger';
 import { platform } from '../../platform';
 
diff --git a/lib/workers/global/index.ts b/lib/workers/global/index.ts
index 06600d5da6ef1b22922305b9da21b323e16895cd..0d7978fb735f75abcc5fdf0bfa6a59c20d24c94f 100644
--- a/lib/workers/global/index.ts
+++ b/lib/workers/global/index.ts
@@ -5,8 +5,12 @@ import { satisfies } from 'semver';
 import upath from 'upath';
 import * as pkg from '../../../package.json';
 import * as configParser from '../../config';
-import { GlobalConfig } from '../../config';
 import { validateConfigSecrets } from '../../config/secrets';
+import type {
+  GlobalConfig,
+  RenovateConfig,
+  RenovateRepository,
+} from '../../config/types';
 import { getProblems, logger, setMeta } from '../../logger';
 import { setUtilConfig } from '../../util';
 import * as hostRules from '../../util/host-rules';
@@ -15,9 +19,6 @@ import { autodiscoverRepositories } from './autodiscover';
 import { globalFinalize, globalInitialize } from './initialize';
 import { Limit, isLimitReached } from './limits';
 
-type RenovateConfig = configParser.RenovateConfig;
-type RenovateRepository = configParser.RenovateRepository;
-
 export async function getRepositoryConfig(
   globalConfig: RenovateConfig,
   repository: RenovateRepository
diff --git a/lib/workers/pr/index.ts b/lib/workers/pr/index.ts
index d210137832c00103256857b0aa264ed80e595534..0ddb2aab61b461aacea1f1a98e9b7ea6a424e37c 100644
--- a/lib/workers/pr/index.ts
+++ b/lib/workers/pr/index.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import {
   PLATFORM_INTEGRATION_UNAUTHORIZED,
   PLATFORM_RATE_LIMIT_EXCEEDED,
diff --git a/lib/workers/repository/configured.ts b/lib/workers/repository/configured.ts
index 1f33f1e335a3c6a2f6698da2d63fec086521ee09..80e88016f5c9c5e55b02e83a76dc8e721beae603 100644
--- a/lib/workers/repository/configured.ts
+++ b/lib/workers/repository/configured.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import {
   REPOSITORY_DISABLED_BY_CONFIG,
   REPOSITORY_FORKED,
diff --git a/lib/workers/repository/dependency-dashboard.ts b/lib/workers/repository/dependency-dashboard.ts
index 2d57520cdc62b9f5ef1bd0fc3d66000a4481d35d..8e75e00599a228aeda5457803c2fff46af557f5d 100644
--- a/lib/workers/repository/dependency-dashboard.ts
+++ b/lib/workers/repository/dependency-dashboard.ts
@@ -1,7 +1,7 @@
 import is from '@sindresorhus/is';
 import { nameFromLevel } from 'bunyan';
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { getProblems, logger } from '../../logger';
 import { Pr, platform } from '../../platform';
 import { PrState } from '../../types';
diff --git a/lib/workers/repository/error-config.ts b/lib/workers/repository/error-config.ts
index d41d4dab7c0859e67077b9e816e24af88c1e46a5..0ccc619dfc924c0f11f14dcd15f99068f0420dc8 100644
--- a/lib/workers/repository/error-config.ts
+++ b/lib/workers/repository/error-config.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../config';
 import { getAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { logger } from '../../logger';
 import { platform } from '../../platform';
 import { PrState } from '../../types';
diff --git a/lib/workers/repository/error.ts b/lib/workers/repository/error.ts
index 9bdf1dedaba4188a0570f25038b5aa9b9110f489..65aa292b7530236db6417514cb8c943f75ec123a 100644
--- a/lib/workers/repository/error.ts
+++ b/lib/workers/repository/error.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 
 import {
   CONFIG_SECRETS_EXPOSED,
diff --git a/lib/workers/repository/extract/index.spec.ts b/lib/workers/repository/extract/index.spec.ts
index d4f3e54f95bd9969793853bcda0845f8f8f68bd5..6b05823675fb15436505b85bcfce47c69abae05e 100644
--- a/lib/workers/repository/extract/index.spec.ts
+++ b/lib/workers/repository/extract/index.spec.ts
@@ -1,5 +1,5 @@
 import { defaultConfig, getName, git, mocked } from '../../../../test/util';
-import { RenovateConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import * as _managerFiles from './manager-files';
 import { extractAllDependencies } from '.';
 
diff --git a/lib/workers/repository/extract/index.ts b/lib/workers/repository/extract/index.ts
index 69de5551a8cae958a7cb1eedebd439ba1a5a884b..9d99e5e7f2432d3ed12d970ecc750abcd0460e9e 100644
--- a/lib/workers/repository/extract/index.ts
+++ b/lib/workers/repository/extract/index.ts
@@ -1,9 +1,6 @@
 import is from '@sindresorhus/is';
-import {
-  RenovateConfig,
-  getManagerConfig,
-  mergeChildConfig,
-} from '../../../config';
+import { getManagerConfig, mergeChildConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import { logger } from '../../../logger';
 import { getManagerList } from '../../../manager';
 import type { PackageFile } from '../../../manager/types';
diff --git a/lib/workers/repository/extract/manager-files.spec.ts b/lib/workers/repository/extract/manager-files.spec.ts
index 8666f889219a3e1408dfc95c4a943a79b5b88c88..cd33536ac3d281f9dbcc1b15378d3e31cf66aef6 100644
--- a/lib/workers/repository/extract/manager-files.spec.ts
+++ b/lib/workers/repository/extract/manager-files.spec.ts
@@ -1,5 +1,5 @@
 import { fs, getConfig, getName, mocked } from '../../../../test/util';
-import { RenovateConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import * as _html from '../../../manager/html';
 import * as _fileMatch from './file-match';
 import { getManagerPackageFiles } from './manager-files';
diff --git a/lib/workers/repository/finalise/index.ts b/lib/workers/repository/finalise/index.ts
index c8ff40d7c7755b1763f0c211626e5278c18b9cbe..6d456e74abf7803e6bef00c63e20d73f3b29ae62 100644
--- a/lib/workers/repository/finalise/index.ts
+++ b/lib/workers/repository/finalise/index.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import { platform } from '../../../platform';
 import * as repositoryCache from '../../../util/cache/repository';
 import { pruneStaleBranches } from './prune';
diff --git a/lib/workers/repository/finalise/prune.ts b/lib/workers/repository/finalise/prune.ts
index be6b63351c0ebbfd1b631fe2f27d181a4d7a7691..921cad4cdcb90ddfc97e4882c8278e4c2f0f21ea 100644
--- a/lib/workers/repository/finalise/prune.ts
+++ b/lib/workers/repository/finalise/prune.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../../config';
 import { getAdminConfig } from '../../../config/admin';
+import type { RenovateConfig } from '../../../config/types';
 import { REPOSITORY_CHANGED } from '../../../constants/error-messages';
 import { logger } from '../../../logger';
 import { platform } from '../../../platform';
diff --git a/lib/workers/repository/index.ts b/lib/workers/repository/index.ts
index 02c4ec312f3a3ab63ce715bb3183ac16810053ea..162ac84aeb1e41fb9c5e4e9515ac0754682eb227 100644
--- a/lib/workers/repository/index.ts
+++ b/lib/workers/repository/index.ts
@@ -1,6 +1,6 @@
 import fs from 'fs-extra';
-import { RenovateConfig } from '../../config';
 import { setAdminConfig } from '../../config/admin';
+import type { RenovateConfig } from '../../config/types';
 import { logger, setMeta } from '../../logger';
 import { deleteLocalFile, privateCacheDir } from '../../util/fs';
 import * as queue from '../../util/http/queue';
diff --git a/lib/workers/repository/init/apis.ts b/lib/workers/repository/init/apis.ts
index d83b30b1e26a08d9725cd686b15903ff08df6579..44d1c6face674c0b089a5173e306469de3fe45f6 100644
--- a/lib/workers/repository/init/apis.ts
+++ b/lib/workers/repository/init/apis.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../../config';
 import { configFileNames } from '../../../config/app-strings';
+import type { RenovateConfig } from '../../../config/types';
 import {
   REPOSITORY_DISABLED_BY_CONFIG,
   REPOSITORY_FORKED,
diff --git a/lib/workers/repository/init/cache.ts b/lib/workers/repository/init/cache.ts
index 40995f8b18c253d5a320467200ef2446986e765a..7144938a358054a7c15a87fc4d02583f0bf22ff8 100644
--- a/lib/workers/repository/init/cache.ts
+++ b/lib/workers/repository/init/cache.ts
@@ -1,5 +1,5 @@
 import * as fs from 'fs-extra';
-import { RenovateConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import * as memCache from '../../../util/cache/memory';
 import * as repositoryCache from '../../../util/cache/repository';
 import { privateCacheDir } from '../../../util/fs';
diff --git a/lib/workers/repository/init/config.ts b/lib/workers/repository/init/config.ts
index 6f782f6cdfee7eb208e4d5275baa083635b897bb..fb802acef351f83f4e907ef79fde89adfea2cf69 100644
--- a/lib/workers/repository/init/config.ts
+++ b/lib/workers/repository/init/config.ts
@@ -3,12 +3,13 @@ import jsonValidator from 'json-dup-key-validator';
 import JSON5 from 'json5';
 import upath from 'upath';
 
-import { RenovateConfig, mergeChildConfig } from '../../../config';
+import { mergeChildConfig } from '../../../config';
 import { configFileNames } from '../../../config/app-strings';
 import { decryptConfig } from '../../../config/decrypt';
 import { migrateAndValidate } from '../../../config/migrate-validate';
 import { migrateConfig } from '../../../config/migration';
 import * as presets from '../../../config/presets';
+import type { RenovateConfig } from '../../../config/types';
 import {
   CONFIG_VALIDATION,
   REPOSITORY_CHANGED,
diff --git a/lib/workers/repository/init/index.ts b/lib/workers/repository/init/index.ts
index 4896b9501d580618d8491029ea81c2c7bd455e17..07a47f1f4cf8281503148303ec61571ba02c54f8 100644
--- a/lib/workers/repository/init/index.ts
+++ b/lib/workers/repository/init/index.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../../config';
 import { applySecretsToConfig } from '../../../config/secrets';
+import type { RenovateConfig } from '../../../config/types';
 import { logger } from '../../../logger';
 import { clone } from '../../../util/clone';
 import { setUserRepoConfig } from '../../../util/git';
diff --git a/lib/workers/repository/init/vulnerability.ts b/lib/workers/repository/init/vulnerability.ts
index c4e5940d1f2dc5717b4f6bfa2070602157e70d4e..dfab167a797433dfcd74f1d3cf08b807955cd5a0 100644
--- a/lib/workers/repository/init/vulnerability.ts
+++ b/lib/workers/repository/init/vulnerability.ts
@@ -1,4 +1,4 @@
-import { PackageRule, RenovateConfig } from '../../../config';
+import type { PackageRule, RenovateConfig } from '../../../config/types';
 import { NO_VULNERABILITY_ALERTS } from '../../../constants/error-messages';
 import * as datasourceMaven from '../../../datasource/maven';
 import { id as npmId } from '../../../datasource/npm';
diff --git a/lib/workers/repository/onboarding/branch/check.ts b/lib/workers/repository/onboarding/branch/check.ts
index 5590738c5e5b482388642ee01e8761ed37daf421..9a2a4369218454703c1fbb4646e70c8ef8f9638f 100644
--- a/lib/workers/repository/onboarding/branch/check.ts
+++ b/lib/workers/repository/onboarding/branch/check.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../../../config';
 import { configFileNames } from '../../../../config/app-strings';
+import type { RenovateConfig } from '../../../../config/types';
 import {
   REPOSITORY_CLOSED_ONBOARDING,
   REPOSITORY_NO_CONFIG,
diff --git a/lib/workers/repository/onboarding/branch/config.ts b/lib/workers/repository/onboarding/branch/config.ts
index a21b40ff44d16de00e7b5eb5a4acab67f144021b..224f495b01d6696c9ced5eae8e4d8c0f738c0c2d 100644
--- a/lib/workers/repository/onboarding/branch/config.ts
+++ b/lib/workers/repository/onboarding/branch/config.ts
@@ -1,6 +1,6 @@
-import { RenovateConfig } from '../../../../config';
 import { getPreset } from '../../../../config/presets/local';
 import { PRESET_DEP_NOT_FOUND } from '../../../../config/presets/util';
+import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
 import { clone } from '../../../../util/clone';
 
diff --git a/lib/workers/repository/onboarding/branch/create.ts b/lib/workers/repository/onboarding/branch/create.ts
index 0bd094d7d965a54bfd387faee846ea5522165aaa..0dc023124d303429666c82934680c4c5d770aba9 100644
--- a/lib/workers/repository/onboarding/branch/create.ts
+++ b/lib/workers/repository/onboarding/branch/create.ts
@@ -1,6 +1,6 @@
-import { RenovateConfig } from '../../../../config';
 import { getAdminConfig } from '../../../../config/admin';
 import { configFileNames } from '../../../../config/app-strings';
+import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
 import { commitFiles } from '../../../../util/git';
 import { formatCommitMessagePrefix } from '../../util/commit-message';
diff --git a/lib/workers/repository/onboarding/branch/index.ts b/lib/workers/repository/onboarding/branch/index.ts
index 47812ecee5d446012d213124006c519d60d6b069..d9f63474bc54ac2d1a50626423832620a91af1b6 100644
--- a/lib/workers/repository/onboarding/branch/index.ts
+++ b/lib/workers/repository/onboarding/branch/index.ts
@@ -1,5 +1,5 @@
-import { RenovateConfig } from '../../../../config';
 import { getAdminConfig } from '../../../../config/admin';
+import type { RenovateConfig } from '../../../../config/types';
 import {
   REPOSITORY_FORKED,
   REPOSITORY_NO_PACKAGE_FILES,
diff --git a/lib/workers/repository/onboarding/branch/rebase.ts b/lib/workers/repository/onboarding/branch/rebase.ts
index aa4557e43685ae63a34ca7af07f9832f7cd98255..63354f51670ba6a1c4ed394ea215bd062da4782b 100644
--- a/lib/workers/repository/onboarding/branch/rebase.ts
+++ b/lib/workers/repository/onboarding/branch/rebase.ts
@@ -1,6 +1,6 @@
-import { RenovateConfig } from '../../../../config';
 import { getAdminConfig } from '../../../../config/admin';
 import { configFileNames } from '../../../../config/app-strings';
+import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
 import {
   commitFiles,
diff --git a/lib/workers/repository/onboarding/pr/base-branch.ts b/lib/workers/repository/onboarding/pr/base-branch.ts
index 76cdb4b08ac79a60dae2304eecfb4bae1077c53e..0e574e18dc6fc8a63b5e5ee1a4cbb1c1c61ced05 100644
--- a/lib/workers/repository/onboarding/pr/base-branch.ts
+++ b/lib/workers/repository/onboarding/pr/base-branch.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../../../config';
+import type { RenovateConfig } from '../../../../config/types';
 
 export function getBaseBranchDesc(config: RenovateConfig): string {
   // Describe base branch only if it's configured
diff --git a/lib/workers/repository/onboarding/pr/pr-list.ts b/lib/workers/repository/onboarding/pr/pr-list.ts
index b44a94067b987b508978aa24720ef4040c440ca3..f5adce06102e47be6ec817a2d04be26d624516b9 100644
--- a/lib/workers/repository/onboarding/pr/pr-list.ts
+++ b/lib/workers/repository/onboarding/pr/pr-list.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../../../config';
+import type { RenovateConfig } from '../../../../config/types';
 import { logger } from '../../../../logger';
 import { emojify } from '../../../../util/emoji';
 import type { BranchConfig } from '../../../types';
diff --git a/lib/workers/repository/process/fetch.ts b/lib/workers/repository/process/fetch.ts
index df521037c0999a80cf65aa16e62d9d06784c8f7a..10bc0afa51815452434dc43a2ecede206ad93ef7 100644
--- a/lib/workers/repository/process/fetch.ts
+++ b/lib/workers/repository/process/fetch.ts
@@ -1,10 +1,6 @@
 import pAll from 'p-all';
-import {
-  ManagerConfig,
-  RenovateConfig,
-  getManagerConfig,
-  mergeChildConfig,
-} from '../../../config';
+import { getManagerConfig, mergeChildConfig } from '../../../config';
+import type { ManagerConfig, RenovateConfig } from '../../../config/types';
 import { getDefaultConfig } from '../../../datasource';
 import { logger } from '../../../logger';
 import { getPackageUpdates } from '../../../manager';
diff --git a/lib/workers/repository/process/index.ts b/lib/workers/repository/process/index.ts
index a8044ddb563d8e887858906ac85c6efbf90ccc7a..008d948bc9ea4801f1299ce3c9f54ea4962ae567 100644
--- a/lib/workers/repository/process/index.ts
+++ b/lib/workers/repository/process/index.ts
@@ -1,4 +1,5 @@
-import { RenovateConfig, mergeChildConfig } from '../../../config';
+import { mergeChildConfig } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import { logger } from '../../../logger';
 import type { PackageFile } from '../../../manager/types';
 import { platform } from '../../../platform';
diff --git a/lib/workers/repository/process/lookup/update-type.ts b/lib/workers/repository/process/lookup/update-type.ts
index 2ec97d4dba5011c023bd5d6c8363dab797e5d9bb..956d7b310a88ed062b30162a595f3d1bf94903ab 100644
--- a/lib/workers/repository/process/lookup/update-type.ts
+++ b/lib/workers/repository/process/lookup/update-type.ts
@@ -1,4 +1,4 @@
-import { UpdateType } from '../../../../config';
+import type { UpdateType } from '../../../../config/types';
 import * as allVersioning from '../../../../versioning';
 
 export interface UpdateTypeConfig {
diff --git a/lib/workers/repository/process/sort.spec.ts b/lib/workers/repository/process/sort.spec.ts
index 95612f625a171abd668f3b510592d682258594f7..9f2fd3c306ad8d8737bf1aecee988c16f515da2e 100644
--- a/lib/workers/repository/process/sort.spec.ts
+++ b/lib/workers/repository/process/sort.spec.ts
@@ -1,5 +1,5 @@
 import { getName } from '../../../../test/util';
-import { UpdateType } from '../../../config';
+import type { UpdateType } from '../../../config/types';
 import { sortBranches } from './sort';
 
 describe(getName(__filename), () => {
diff --git a/lib/workers/repository/result.ts b/lib/workers/repository/result.ts
index 7b965f89d0934eb30f919d18efc4fc9037373f45..9039eeab97fa31bda76c9452ea436f76420ce843 100644
--- a/lib/workers/repository/result.ts
+++ b/lib/workers/repository/result.ts
@@ -1,4 +1,4 @@
-import { RenovateConfig } from '../../config';
+import type { RenovateConfig } from '../../config/types';
 import {
   CONFIG_SECRETS_EXPOSED,
   CONFIG_VALIDATION,
diff --git a/lib/workers/repository/updates/branchify.ts b/lib/workers/repository/updates/branchify.ts
index 96e0b372d1cec8ffd246da72cf7bd043b82534c6..40d5628124bc36b1deba92878f6c0c56eedf1975 100644
--- a/lib/workers/repository/updates/branchify.ts
+++ b/lib/workers/repository/updates/branchify.ts
@@ -1,5 +1,5 @@
 import type { Merge } from 'type-fest';
-import { RenovateConfig, ValidationMessage } from '../../../config';
+import type { RenovateConfig, ValidationMessage } from '../../../config/types';
 import { addMeta, logger, removeMeta } from '../../../logger';
 import type { BranchConfig, BranchUpgradeConfig } from '../../types';
 import { embedChangelogs } from '../changelog';
diff --git a/lib/workers/repository/updates/flatten.ts b/lib/workers/repository/updates/flatten.ts
index 9a195d1d3e331d517502b10e4f33a537cdf42341..6261b851c88ca9c7b6fc68c284d00dd6fb275f29 100644
--- a/lib/workers/repository/updates/flatten.ts
+++ b/lib/workers/repository/updates/flatten.ts
@@ -1,9 +1,9 @@
 import {
-  RenovateConfig,
   filterConfig,
   getManagerConfig,
   mergeChildConfig,
 } from '../../../config';
+import type { RenovateConfig } from '../../../config/types';
 import { LANGUAGE_DOCKER } from '../../../constants/languages';
 import { getDefaultConfig } from '../../../datasource';
 import { get } from '../../../manager';
diff --git a/test/util.ts b/test/util.ts
index 844a7e74e2ce93d61251d5b26f8352a2531e60d5..06f596fb1e85e6c0e7da47851344455800285492 100644
--- a/test/util.ts
+++ b/test/util.ts
@@ -1,7 +1,7 @@
 import crypto from 'crypto';
 import { expect } from '@jest/globals';
-import { RenovateConfig as _RenovateConfig } from '../lib/config';
 import { getConfig } from '../lib/config/defaults';
+import type { RenovateConfig as _RenovateConfig } from '../lib/config/types';
 import * as _logger from '../lib/logger';
 import { platform as _platform } from '../lib/platform';
 import * as _env from '../lib/util/exec/env';