diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md
index b0612ff4d5b65f..8f2bde3856019a 100644
--- a/docs/development/core/public/kibana-plugin-core-public.md
+++ b/docs/development/core/public/kibana-plugin-core-public.md
@@ -172,7 +172,6 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [PublicAppInfo](./kibana-plugin-core-public.publicappinfo.md) | Public information about a registered [application](./kibana-plugin-core-public.app.md) |
| [PublicLegacyAppInfo](./kibana-plugin-core-public.publiclegacyappinfo.md) | Information about a registered [legacy application](./kibana-plugin-core-public.legacyapp.md) |
| [PublicUiSettingsParams](./kibana-plugin-core-public.publicuisettingsparams.md) | A sub-set of [UiSettingsParams](./kibana-plugin-core-public.uisettingsparams.md) exposed to the client-side. |
-| [RecursiveReadonly](./kibana-plugin-core-public.recursivereadonly.md) | |
| [SavedObjectAttribute](./kibana-plugin-core-public.savedobjectattribute.md) | Type definition for a Saved Object attribute value |
| [SavedObjectAttributeSingle](./kibana-plugin-core-public.savedobjectattributesingle.md) | Don't use this type, it's simply a helper type for [SavedObjectAttribute](./kibana-plugin-core-public.savedobjectattribute.md) |
| [SavedObjectsClientContract](./kibana-plugin-core-public.savedobjectsclientcontract.md) | SavedObjectsClientContract as implemented by the [SavedObjectsClient](./kibana-plugin-core-public.savedobjectsclient.md) |
diff --git a/docs/development/core/public/kibana-plugin-core-public.recursivereadonly.md b/docs/development/core/public/kibana-plugin-core-public.recursivereadonly.md
deleted file mode 100644
index 2f47ef1086d717..00000000000000
--- a/docs/development/core/public/kibana-plugin-core-public.recursivereadonly.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [RecursiveReadonly](./kibana-plugin-core-public.recursivereadonly.md)
-
-## RecursiveReadonly type
-
-
-Signature:
-
-```typescript
-export declare type RecursiveReadonly = T extends (...args: any[]) => any ? T : T extends any[] ? RecursiveReadonlyArray : T extends object ? Readonly<{
- [K in keyof T]: RecursiveReadonly;
-}> : T;
-```
diff --git a/docs/development/core/server/kibana-plugin-core-server.md b/docs/development/core/server/kibana-plugin-core-server.md
index 29c340bc390f28..f0dc662b66a42e 100644
--- a/docs/development/core/server/kibana-plugin-core-server.md
+++ b/docs/development/core/server/kibana-plugin-core-server.md
@@ -257,7 +257,6 @@ The plugin integrates with the core system via lifecycle events: `setup`
| [PluginName](./kibana-plugin-core-server.pluginname.md) | Dedicated type for plugin name/id that is supposed to make Map/Set/Arrays that use it as a key or value more obvious. |
| [PluginOpaqueId](./kibana-plugin-core-server.pluginopaqueid.md) | |
| [PublicUiSettingsParams](./kibana-plugin-core-server.publicuisettingsparams.md) | A sub-set of [UiSettingsParams](./kibana-plugin-core-server.uisettingsparams.md) exposed to the client-side. |
-| [RecursiveReadonly](./kibana-plugin-core-server.recursivereadonly.md) | |
| [RedirectResponseOptions](./kibana-plugin-core-server.redirectresponseoptions.md) | HTTP response parameters for redirection response |
| [RequestHandler](./kibana-plugin-core-server.requesthandler.md) | A function executed when route path matched requested resource path. Request handler is expected to return a result of one of [KibanaResponseFactory](./kibana-plugin-core-server.kibanaresponsefactory.md) functions. |
| [RequestHandlerContextContainer](./kibana-plugin-core-server.requesthandlercontextcontainer.md) | An object that handles registration of http request context providers. |
diff --git a/docs/development/core/server/kibana-plugin-core-server.recursivereadonly.md b/docs/development/core/server/kibana-plugin-core-server.recursivereadonly.md
deleted file mode 100644
index bc9cd4680b17d1..00000000000000
--- a/docs/development/core/server/kibana-plugin-core-server.recursivereadonly.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [RecursiveReadonly](./kibana-plugin-core-server.recursivereadonly.md)
-
-## RecursiveReadonly type
-
-
-Signature:
-
-```typescript
-export declare type RecursiveReadonly = T extends (...args: any[]) => any ? T : T extends any[] ? RecursiveReadonlyArray : T extends object ? Readonly<{
- [K in keyof T]: RecursiveReadonly;
-}> : T;
-```
diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.querystringinput.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.querystringinput.md
index 85eb4825bc2e32..a25f4a0c373b2c 100644
--- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.querystringinput.md
+++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.querystringinput.md
@@ -7,5 +7,5 @@
Signature:
```typescript
-QueryStringInput: React.FC>
+QueryStringInput: React.FC>
```
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index d10e351f4d13ed..8c68c7a9fe472d 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -116,6 +116,7 @@ import { PublicUiSettingsParams as PublicUiSettingsParams_2 } from 'src/core/ser
import { PutScriptParams } from 'elasticsearch';
import { PutTemplateParams } from 'elasticsearch';
import React from 'react';
+import { RecursiveReadonly } from '@kbn/utility-types';
import { ReindexParams } from 'elasticsearch';
import { ReindexRethrottleParams } from 'elasticsearch';
import { RenderSearchTemplateParams } from 'elasticsearch';
@@ -1153,13 +1154,6 @@ export type PublicLegacyAppInfo = Omit & {
// @public
export type PublicUiSettingsParams = Omit;
-// Warning: (ae-forgotten-export) The symbol "RecursiveReadonlyArray" needs to be exported by the entry point index.d.ts
-//
-// @public (undocumented)
-export type RecursiveReadonly = T extends (...args: any[]) => any ? T : T extends any[] ? RecursiveReadonlyArray : T extends object ? Readonly<{
- [K in keyof T]: RecursiveReadonly;
-}> : T;
-
// Warning: (ae-missing-release-tag) "SavedObject" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md
index 00ec217bc85862..e0cf7e155e1299 100644
--- a/src/core/server/server.api.md
+++ b/src/core/server/server.api.md
@@ -108,7 +108,7 @@ import { PingParams } from 'elasticsearch';
import { PutScriptParams } from 'elasticsearch';
import { PutTemplateParams } from 'elasticsearch';
import { Readable } from 'stream';
-import { RecursiveReadonly as RecursiveReadonly_2 } from 'kibana/public';
+import { RecursiveReadonly } from '@kbn/utility-types';
import { ReindexParams } from 'elasticsearch';
import { ReindexRethrottleParams } from 'elasticsearch';
import { RenderSearchTemplateParams } from 'elasticsearch';
@@ -557,7 +557,7 @@ export const config: {
startupTimeout: import("@kbn/config-schema").Type;
logQueries: import("@kbn/config-schema").Type;
ssl: import("@kbn/config-schema").ObjectType<{
- verificationMode: import("@kbn/config-schema").Type<"none" | "full" | "certificate">;
+ verificationMode: import("@kbn/config-schema").Type<"none" | "certificate" | "full">;
certificateAuthorities: import("@kbn/config-schema").Type;
certificate: import("@kbn/config-schema").Type;
key: import("@kbn/config-schema").Type;
@@ -1648,13 +1648,6 @@ export interface PluginsServiceStart {
// @public
export type PublicUiSettingsParams = Omit;
-// Warning: (ae-forgotten-export) The symbol "RecursiveReadonlyArray" needs to be exported by the entry point index.d.ts
-//
-// @public (undocumented)
-export type RecursiveReadonly = T extends (...args: any[]) => any ? T : T extends any[] ? RecursiveReadonlyArray : T extends object ? Readonly<{
- [K in keyof T]: RecursiveReadonly;
-}> : T;
-
// @public
export type RedirectResponseOptions = HttpResponseOptions & {
headers: {
@@ -2542,7 +2535,7 @@ export interface SessionStorageFactory {
}
// @public (undocumented)
-export type SharedGlobalConfig = RecursiveReadonly_2<{
+export type SharedGlobalConfig = RecursiveReadonly<{
kibana: Pick;
elasticsearch: Pick;
path: Pick;
diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md
index 25c9b0718050ac..418aa8de71b8da 100644
--- a/src/plugins/data/public/public.api.md
+++ b/src/plugins/data/public/public.api.md
@@ -142,6 +142,7 @@ import { PutScriptParams } from 'elasticsearch';
import { PutTemplateParams } from 'elasticsearch';
import React from 'react';
import * as React_2 from 'react';
+import { RecursiveReadonly } from '@kbn/utility-types';
import { ReindexParams } from 'elasticsearch';
import { ReindexRethrottleParams } from 'elasticsearch';
import { RenderSearchTemplateParams } from 'elasticsearch';
@@ -1511,7 +1512,7 @@ export interface QueryState {
// Warning: (ae-missing-release-tag) "QueryStringInput" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
-export const QueryStringInput: React.FC>;
+export const QueryStringInput: React.FC>;
// @public (undocumented)
export type QuerySuggestion = QuerySuggestionBasic | QuerySuggestionField;
diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md
index 136d960b52c347..e1f4e48d42dd59 100644
--- a/src/plugins/data/server/server.api.md
+++ b/src/plugins/data/server/server.api.md
@@ -109,7 +109,7 @@ import { PeerCertificate } from 'tls';
import { PingParams } from 'elasticsearch';
import { PutScriptParams } from 'elasticsearch';
import { PutTemplateParams } from 'elasticsearch';
-import { RecursiveReadonly } from 'kibana/public';
+import { RecursiveReadonly } from '@kbn/utility-types';
import { ReindexParams } from 'elasticsearch';
import { ReindexRethrottleParams } from 'elasticsearch';
import { RenderSearchTemplateParams } from 'elasticsearch';