From 336416261a0a9f46467f90e93854d81ca01292d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E3=81=8A=E3=81=95=E3=82=80=E3=81=AE=E3=81=B2=E3=81=A8?=
 <46447427+samunohito@users.noreply.github.com>
Date: Sat, 2 Dec 2023 21:00:05 +0900
Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=83=E3=82=AF=E3=82=A8=E3=83=B3?=
 =?UTF-8?q?=E3=83=89=E3=81=8C=E7=94=9F=E6=88=90=E3=81=99=E3=82=8Bapi.json?=
 =?UTF-8?q?=E3=81=8B=E3=82=89misskey-js=E3=81=AE=E5=9E=8B=E3=82=92?=
 =?UTF-8?q?=E4=BD=9C=E6=88=90=E3=81=99=E3=82=8B=20(#12434)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* ひとまず生成できるところまで

* ファイル構成整理

* 生成コマンド整理

* misskey-jsへの組み込み

* fix generator.ts

* wip

* fix generator.ts

* fix package.json

* 生成ロジックの調整

* 型レベルでのswitch-case機構をmisskey-jsからfrontendに持ち込めるようにした

* 型チェック用のtsconfig.jsonを作成

* 他のエンドポイントを呼ぶ関数にも適用

* 未使用エンティティなどを削除

* misskey-js側で手動定義されていた型を自動生成された型に移行(ただしapi.jsonがvalidでなくなってしまったので後で修正する)

* messagingは廃止されている(テストのビルドエラー解消)

* validなapi.jsonを出力できるように修正

* 修正漏れ対応

* Ajvに怒られて起動できなかったところを修正

* fix ci(途中)

* パラメータenumをやめる

* add command

* add api.json

* 都度自動生成をやめる

* 一気通貫スクリプト修正

* fix ci

* 生成ロジック修正

* フロントの型チェックは結局やらなかったので戻しておく

* fix pnpm-lock.yaml

* add README.md

---------

Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
---
 package.json                                  |     4 +-
 .../src/server/api/endpoints/admin/meta.ts    |    76 +
 .../api/endpoints/federation/instances.ts     |    29 +-
 .../backend/src/server/api/endpoints/meta.ts  |    27 +
 .../frontend/src/components/MkEmojiPicker.vue |     8 +-
 .../src/components/MkFeaturedPhotos.vue       |     2 +-
 .../src/components/MkInstanceCardMini.vue     |     6 +-
 .../frontend/src/components/MkInviteCode.vue  |     2 +-
 .../src/components/MkVisitorDashboard.vue     |     7 +-
 packages/frontend/src/custom-emojis.ts        |     6 +-
 packages/frontend/src/filters/user.ts         |     1 -
 packages/frontend/src/instance.ts             |     2 +-
 packages/frontend/src/pages/_error_.vue       |     2 +-
 packages/frontend/src/pages/about.emojis.vue  |     2 +-
 packages/frontend/src/pages/auth.form.vue     |     2 +-
 packages/frontend/src/pages/auth.vue          |     2 +-
 packages/frontend/src/pages/instance-info.vue |    15 +-
 packages/frontend/src/pages/invite.vue        |     2 +-
 .../frontend/src/pages/welcome.entrance.a.vue |    12 +-
 packages/frontend/src/scripts/api.ts          |    19 +-
 .../src/ui/_common_/statusbar-federation.vue  |     2 +-
 packages/misskey-js/etc/misskey-js.api.md     |  4585 ++--
 packages/misskey-js/generator/.eslintrc.cjs   |     9 +
 packages/misskey-js/generator/.gitignore      |     1 +
 packages/misskey-js/generator/README.md       |    19 +
 packages/misskey-js/generator/package.json    |    24 +
 .../misskey-js/generator/src/generator.ts     |   284 +
 packages/misskey-js/generator/tsconfig.json   |    20 +
 packages/misskey-js/package.json              |     6 +-
 packages/misskey-js/src/api.ts                |    62 +-
 packages/misskey-js/src/api.types.ts          |   707 +-
 packages/misskey-js/src/autogen/endpoint.ts   |   802 +
 packages/misskey-js/src/autogen/entities.ts   |   478 +
 packages/misskey-js/src/autogen/models.ts     |    39 +
 packages/misskey-js/src/autogen/types.ts      | 22560 ++++++++++++++++
 packages/misskey-js/src/entities.ts           |   610 +-
 packages/misskey-js/src/streaming.types.ts    |    25 +-
 packages/misskey-js/test-d/api.ts             |    10 +-
 packages/misskey-js/test-d/streaming.ts       |    14 -
 packages/misskey-js/tsconfig.json             |     2 +-
 pnpm-lock.yaml                                |   619 +-
 pnpm-workspace.yaml                           |     1 +
 42 files changed, 27097 insertions(+), 4008 deletions(-)
 create mode 100644 packages/misskey-js/generator/.eslintrc.cjs
 create mode 100644 packages/misskey-js/generator/.gitignore
 create mode 100644 packages/misskey-js/generator/README.md
 create mode 100644 packages/misskey-js/generator/package.json
 create mode 100644 packages/misskey-js/generator/src/generator.ts
 create mode 100644 packages/misskey-js/generator/tsconfig.json
 create mode 100644 packages/misskey-js/src/autogen/endpoint.ts
 create mode 100644 packages/misskey-js/src/autogen/entities.ts
 create mode 100644 packages/misskey-js/src/autogen/models.ts
 create mode 100644 packages/misskey-js/src/autogen/types.ts

diff --git a/package.json b/package.json
index fc328a650b..9fa094e049 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
 		"build-assets": "node ./scripts/build-assets.mjs",
 		"build": "pnpm build-pre && pnpm -r build && pnpm build-assets",
 		"build-storybook": "pnpm --filter frontend build-storybook",
+		"build-misskey-js-with-types": "pnpm --filter backend build && pnpm --filter backend generate-api-json && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build",
 		"start": "pnpm check:connect && cd packages/backend && node ./built/boot/entry.js",
 		"start:test": "cd packages/backend && cross-env NODE_ENV=test node ./built/boot/entry.js",
 		"init": "pnpm migrate",
@@ -57,7 +58,8 @@
 		"cross-env": "7.0.3",
 		"cypress": "13.6.0",
 		"eslint": "8.54.0",
-		"start-server-and-test": "2.0.3"
+		"start-server-and-test": "2.0.3",
+		"ncp": "2.0.0"
 	},
 	"optionalDependencies": {
 		"@tensorflow/tfjs-core": "4.4.0"
diff --git a/packages/backend/src/server/api/endpoints/admin/meta.ts b/packages/backend/src/server/api/endpoints/admin/meta.ts
index 1dddb166ae..8774bcbb67 100644
--- a/packages/backend/src/server/api/endpoints/admin/meta.ts
+++ b/packages/backend/src/server/api/endpoints/admin/meta.ts
@@ -327,6 +327,82 @@ export const meta = {
 				type: 'number',
 				optional: false, nullable: false,
 			},
+			backgroundImageUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			deeplAuthKey: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			deeplIsPro: {
+				type: 'boolean',
+				optional: false, nullable: false,
+			},
+			defaultDarkTheme: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			defaultLightTheme: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			description: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			disableRegistration: {
+				type: 'boolean',
+				optional: false, nullable: false,
+			},
+			impressumUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			maintainerEmail: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			maintainerName: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			name: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			objectStorageS3ForcePathStyle: {
+				type: 'boolean',
+				optional: false, nullable: false,
+			},
+			privacyPolicyUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			repositoryUrl: {
+				type: 'string',
+				optional: false, nullable: false,
+			},
+			summalyProxy: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			themeColor: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			tosUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			uri: {
+				type: 'string',
+				optional: false, nullable: false,
+			},
+			version: {
+				type: 'string',
+				optional: false, nullable: false,
+			},
 		},
 	},
 } as const;
diff --git a/packages/backend/src/server/api/endpoints/federation/instances.ts b/packages/backend/src/server/api/endpoints/federation/instances.ts
index c8beefa9c7..e5a90715f5 100644
--- a/packages/backend/src/server/api/endpoints/federation/instances.ts
+++ b/packages/backend/src/server/api/endpoints/federation/instances.ts
@@ -36,13 +36,32 @@ export const paramDef = {
 		blocked: { type: 'boolean', nullable: true },
 		notResponding: { type: 'boolean', nullable: true },
 		suspended: { type: 'boolean', nullable: true },
-		silenced: { type: "boolean", nullable: true },
+		silenced: { type: 'boolean', nullable: true },
 		federating: { type: 'boolean', nullable: true },
 		subscribing: { type: 'boolean', nullable: true },
 		publishing: { type: 'boolean', nullable: true },
 		limit: { type: 'integer', minimum: 1, maximum: 100, default: 30 },
 		offset: { type: 'integer', default: 0 },
-		sort: { type: 'string' },
+		sort: {
+			type: 'string',
+			nullable: true,
+			enum: [
+				'+pubSub',
+				'-pubSub',
+				'+notes',
+				'-notes',
+				'+users',
+				'-users',
+				'+following',
+				'-following',
+				'+followers',
+				'-followers',
+				'+firstRetrievedAt',
+				'-firstRetrievedAt',
+				'+latestRequestReceivedAt',
+				'-latestRequestReceivedAt',
+			],
+		},
 	},
 	required: [],
 } as const;
@@ -103,18 +122,18 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
 				}
 			}
 
-			if (typeof ps.silenced === "boolean") {
+			if (typeof ps.silenced === 'boolean') {
 				const meta = await this.metaService.fetch(true);
 
 				if (ps.silenced) {
 					if (meta.silencedHosts.length === 0) {
 						return [];
 					}
-					query.andWhere("instance.host IN (:...silences)", {
+					query.andWhere('instance.host IN (:...silences)', {
 						silences: meta.silencedHosts,
 					});
 				} else if (meta.silencedHosts.length > 0) {
-					query.andWhere("instance.host NOT IN (:...silences)", {
+					query.andWhere('instance.host NOT IN (:...silences)', {
 						silences: meta.silencedHosts,
 					});
 				}
diff --git a/packages/backend/src/server/api/endpoints/meta.ts b/packages/backend/src/server/api/endpoints/meta.ts
index 2727e4f093..9dd4553152 100644
--- a/packages/backend/src/server/api/endpoints/meta.ts
+++ b/packages/backend/src/server/api/endpoints/meta.ts
@@ -250,6 +250,33 @@ export const meta = {
 					},
 				},
 			},
+			backgroundImageUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			impressumUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			logoImageUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			privacyPolicyUrl: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
+			serverRules: {
+				type: 'array',
+				optional: false, nullable: false,
+				items: {
+					type: 'string',
+				},
+			},
+			themeColor: {
+				type: 'string',
+				optional: false, nullable: true,
+			},
 		},
 	},
 } as const;
diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue
index 603f676d5d..ecff2b5ace 100644
--- a/packages/frontend/src/components/MkEmojiPicker.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.vue
@@ -149,7 +149,7 @@ const size = computed(() => props.asReactionPicker ? reactionPickerSize.value :
 const width = computed(() => props.asReactionPicker ? reactionPickerWidth.value : 3);
 const height = computed(() => props.asReactionPicker ? reactionPickerHeight.value : 2);
 const q = ref<string>('');
-const searchResultCustom = ref<Misskey.entities.CustomEmoji[]>([]);
+const searchResultCustom = ref<Misskey.entities.EmojiSimple[]>([]);
 const searchResultUnicode = ref<UnicodeEmojiDef[]>([]);
 const tab = ref<'index' | 'custom' | 'unicode' | 'tags'>('index');
 
@@ -196,7 +196,7 @@ watch(q, () => {
 	const searchCustom = () => {
 		const max = 100;
 		const emojis = customEmojis.value;
-		const matches = new Set<Misskey.entities.CustomEmoji>();
+		const matches = new Set<Misskey.entities.EmojiSimple>();
 
 		const exactMatch = emojis.find(emoji => emoji.name === newQ);
 		if (exactMatch) matches.add(exactMatch);
@@ -326,7 +326,7 @@ watch(q, () => {
 	searchResultUnicode.value = Array.from(searchUnicode());
 });
 
-function filterAvailable(emoji: Misskey.entities.CustomEmoji): boolean {
+function filterAvailable(emoji: Misskey.entities.EmojiSimple): boolean {
 	return (emoji.roleIdsThatCanBeUsedThisEmojiAsReaction == null || emoji.roleIdsThatCanBeUsedThisEmojiAsReaction.length === 0) || ($i && $i.roles.some(r => emoji.roleIdsThatCanBeUsedThisEmojiAsReaction.includes(r.id)));
 }
 
@@ -343,7 +343,7 @@ function reset() {
 	q.value = '';
 }
 
-function getKey(emoji: string | Misskey.entities.CustomEmoji | UnicodeEmojiDef): string {
+function getKey(emoji: string | Misskey.entities.EmojiSimple | UnicodeEmojiDef): string {
 	return typeof emoji === 'string' ? emoji : 'char' in emoji ? emoji.char : `:${emoji.name}:`;
 }
 
diff --git a/packages/frontend/src/components/MkFeaturedPhotos.vue b/packages/frontend/src/components/MkFeaturedPhotos.vue
index cef1943d5c..6d1bad7433 100644
--- a/packages/frontend/src/components/MkFeaturedPhotos.vue
+++ b/packages/frontend/src/components/MkFeaturedPhotos.vue
@@ -12,7 +12,7 @@ import { ref } from 'vue';
 import * as Misskey from 'misskey-js';
 import * as os from '@/os.js';
 
-const meta = ref<Misskey.entities.DetailedInstanceMetadata>();
+const meta = ref<Misskey.entities.MetaResponse>();
 
 os.api('meta', { detail: true }).then(gotMeta => {
 	meta.value = gotMeta;
diff --git a/packages/frontend/src/components/MkInstanceCardMini.vue b/packages/frontend/src/components/MkInstanceCardMini.vue
index e384b7a0bc..9710f779d5 100644
--- a/packages/frontend/src/components/MkInstanceCardMini.vue
+++ b/packages/frontend/src/components/MkInstanceCardMini.vue
@@ -21,15 +21,15 @@ import * as os from '@/os.js';
 import { getProxiedImageUrlNullable } from '@/scripts/media-proxy.js';
 
 const props = defineProps<{
-	instance: Misskey.entities.Instance;
+	instance: Misskey.entities.FederationInstance;
 }>();
 
 let chartValues = $ref<number[] | null>(null);
 
 os.apiGet('charts/instance', { host: props.instance.host, limit: 16 + 1, span: 'day' }).then(res => {
 	// 今日のぶんの値はまだ途中の値であり、それも含めると大抵の場合前日よりも下降しているようなグラフになってしまうため今日は弾く
-	res.requests.received.splice(0, 1);
-	chartValues = res.requests.received;
+	res['requests.received'].splice(0, 1);
+	chartValues = res['requests.received'];
 });
 
 function getInstanceIcon(instance): string {
diff --git a/packages/frontend/src/components/MkInviteCode.vue b/packages/frontend/src/components/MkInviteCode.vue
index ff3794ad18..84d797484d 100644
--- a/packages/frontend/src/components/MkInviteCode.vue
+++ b/packages/frontend/src/components/MkInviteCode.vue
@@ -67,7 +67,7 @@ import { i18n } from '@/i18n.js';
 import * as os from '@/os.js';
 
 const props = defineProps<{
-	invite: Misskey.entities.Invite;
+	invite: Misskey.entities.InviteCode;
 	moderator?: boolean;
 }>();
 
diff --git a/packages/frontend/src/components/MkVisitorDashboard.vue b/packages/frontend/src/components/MkVisitorDashboard.vue
index 40493a5d06..3eb5c19660 100644
--- a/packages/frontend/src/components/MkVisitorDashboard.vue
+++ b/packages/frontend/src/components/MkVisitorDashboard.vue
@@ -67,15 +67,14 @@ import number from '@/filters/number.js';
 import MkNumber from '@/components/MkNumber.vue';
 import XActiveUsersChart from '@/components/MkVisitorDashboard.ActiveUsersChart.vue';
 
-let meta = $ref<Misskey.entities.Instance>();
-let stats = $ref(null);
+let meta = $ref<Misskey.entities.MetaResponse | null>(null);
+let stats = $ref<Misskey.entities.StatsResponse | null>(null);
 
 os.api('meta', { detail: true }).then(_meta => {
 	meta = _meta;
 });
 
-os.api('stats', {
-}).then((res) => {
+os.api('stats', {}).then((res) => {
 	stats = res;
 });
 
diff --git a/packages/frontend/src/custom-emojis.ts b/packages/frontend/src/custom-emojis.ts
index 8ecd1bd2eb..6a48159f13 100644
--- a/packages/frontend/src/custom-emojis.ts
+++ b/packages/frontend/src/custom-emojis.ts
@@ -10,7 +10,7 @@ import { useStream } from '@/stream.js';
 import { get, set } from '@/scripts/idb-proxy.js';
 
 const storageCache = await get('emojis');
-export const customEmojis = shallowRef<Misskey.entities.CustomEmoji[]>(Array.isArray(storageCache) ? storageCache : []);
+export const customEmojis = shallowRef<Misskey.entities.EmojiSimple[]>(Array.isArray(storageCache) ? storageCache : []);
 export const customEmojiCategories = computed<[ ...string[], null ]>(() => {
 	const categories = new Set<string>();
 	for (const emoji of customEmojis.value) {
@@ -21,7 +21,7 @@ export const customEmojiCategories = computed<[ ...string[], null ]>(() => {
 	return markRaw([...Array.from(categories), null]);
 });
 
-export const customEmojisMap = new Map<string, Misskey.entities.CustomEmoji>();
+export const customEmojisMap = new Map<string, Misskey.entities.EmojiSimple>();
 watch(customEmojis, emojis => {
 	customEmojisMap.clear();
 	for (const emoji of emojis) {
@@ -38,7 +38,7 @@ stream.on('emojiAdded', emojiData => {
 });
 
 stream.on('emojiUpdated', emojiData => {
-	customEmojis.value = customEmojis.value.map(item => emojiData.emojis.find(search => search.name === item.name) as Misskey.entities.CustomEmoji ?? item);
+	customEmojis.value = customEmojis.value.map(item => emojiData.emojis.find(search => search.name === item.name) as Misskey.entities.EmojiSimple ?? item);
 	set('emojis', customEmojis.value);
 });
 
diff --git a/packages/frontend/src/filters/user.ts b/packages/frontend/src/filters/user.ts
index a7a13bec6e..8d20603725 100644
--- a/packages/frontend/src/filters/user.ts
+++ b/packages/frontend/src/filters/user.ts
@@ -3,7 +3,6 @@
  * SPDX-License-Identifier: AGPL-3.0-only
  */
 
-import * as Misskey from 'misskey-js';
 import * as Misskey from 'misskey-js';
 import { url } from '@/config.js';
 
diff --git a/packages/frontend/src/instance.ts b/packages/frontend/src/instance.ts
index cbfd95951c..b09264dabb 100644
--- a/packages/frontend/src/instance.ts
+++ b/packages/frontend/src/instance.ts
@@ -15,7 +15,7 @@ const cached = miLocalStorage.getItem('instance');
 
 // TODO: instanceをリアクティブにするかは再考の余地あり
 
-export const instance: Misskey.entities.InstanceMetadata = reactive(cached ? JSON.parse(cached) : {
+export const instance: Misskey.entities.MetaResponse = reactive(cached ? JSON.parse(cached) : {
 	// TODO: set default values
 });
 
diff --git a/packages/frontend/src/pages/_error_.vue b/packages/frontend/src/pages/_error_.vue
index 7a3e2f444b..4821687ac3 100644
--- a/packages/frontend/src/pages/_error_.vue
+++ b/packages/frontend/src/pages/_error_.vue
@@ -44,7 +44,7 @@ const props = withDefaults(defineProps<{
 
 let loaded = $ref(false);
 let serverIsDead = $ref(false);
-let meta = $ref<Misskey.entities.LiteInstanceMetadata | null>(null);
+let meta = $ref<Misskey.entities.MetaResponse | null>(null);
 
 os.api('meta', {
 	detail: false,
diff --git a/packages/frontend/src/pages/about.emojis.vue b/packages/frontend/src/pages/about.emojis.vue
index c9bb6f897e..4ae460f763 100644
--- a/packages/frontend/src/pages/about.emojis.vue
+++ b/packages/frontend/src/pages/about.emojis.vue
@@ -48,7 +48,7 @@ import { $i } from '@/account.js';
 
 const customEmojiTags = getCustomEmojiTags();
 let q = $ref('');
-let searchEmojis = $ref<Misskey.entities.CustomEmoji[]>(null);
+let searchEmojis = $ref<Misskey.entities.EmojiSimple[]>(null);
 let selectedTags = $ref(new Set());
 
 function search() {
diff --git a/packages/frontend/src/pages/auth.form.vue b/packages/frontend/src/pages/auth.form.vue
index 3f6f58df55..9d39a1e603 100644
--- a/packages/frontend/src/pages/auth.form.vue
+++ b/packages/frontend/src/pages/auth.form.vue
@@ -27,7 +27,7 @@ import * as os from '@/os.js';
 import { i18n } from '@/i18n.js';
 
 const props = defineProps<{
-	session: Misskey.entities.AuthSession;
+	session: Misskey.entities.AuthSessionShowResponse;
 }>();
 
 const emit = defineEmits<{
diff --git a/packages/frontend/src/pages/auth.vue b/packages/frontend/src/pages/auth.vue
index 124323a483..bcd54a6ed5 100644
--- a/packages/frontend/src/pages/auth.vue
+++ b/packages/frontend/src/pages/auth.vue
@@ -56,7 +56,7 @@ const props = defineProps<{
 }>();
 
 let state = $ref<'waiting' | 'accepted' | 'fetch-session-error' | 'denied' | null>(null);
-let session = $ref<Misskey.entities.AuthSession | null>(null);
+let session = $ref<Misskey.entities.AuthSessionShowResponse | null>(null);
 
 function accepted() {
 	state = 'accepted';
diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 1ed25c9a47..8706228fd1 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -144,8 +144,8 @@ const props = defineProps<{
 
 let tab = $ref('overview');
 let chartSrc = $ref('instance-requests');
-let meta = $ref<Misskey.entities.AdminInstanceMetadata | null>(null);
-let instance = $ref<Misskey.entities.Instance | null>(null);
+let meta = $ref<Misskey.entities.AdminMetaResponse | null>(null);
+let instance = $ref<Misskey.entities.FederationInstance | null>(null);
 let suspended = $ref(false);
 let isBlocked = $ref(false);
 let isSilenced = $ref(false);
@@ -169,10 +169,10 @@ async function fetch(): Promise<void> {
 	instance = await os.api('federation/show-instance', {
 		host: props.host,
 	});
-	suspended = instance.isSuspended;
-	isBlocked = instance.isBlocked;
-	isSilenced = instance.isSilenced;
-	faviconUrl = getProxiedImageUrlNullable(instance.faviconUrl, 'preview') ?? getProxiedImageUrlNullable(instance.iconUrl, 'preview');
+	suspended = instance?.isSuspended ?? false;
+	isBlocked = instance?.isBlocked ?? false;
+	isSilenced = instance?.isSilenced ?? false;
+	faviconUrl = getProxiedImageUrlNullable(instance?.faviconUrl, 'preview') ?? getProxiedImageUrlNullable(instance?.iconUrl, 'preview');
 }
 
 async function toggleBlock(): Promise<void> {
@@ -188,8 +188,9 @@ async function toggleSilenced(): Promise<void> {
 	if (!meta) throw new Error('No meta?');
 	if (!instance) throw new Error('No instance?');
 	const { host } = instance;
+	const silencedHosts = meta.silencedHosts ?? [];
 	await os.api('admin/update-meta', {
-		silencedHosts: isSilenced ? meta.silencedHosts.concat([host]) : meta.silencedHosts.filter(x => x !== host),
+		silencedHosts: isSilenced ? silencedHosts.concat([host]) : silencedHosts.filter(x => x !== host),
 	});
 }
 
diff --git a/packages/frontend/src/pages/invite.vue b/packages/frontend/src/pages/invite.vue
index b44b580e86..25ce38e0ef 100644
--- a/packages/frontend/src/pages/invite.vue
+++ b/packages/frontend/src/pages/invite.vue
@@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 			<MkPagination ref="pagingComponent" :pagination="pagination">
 				<template #default="{ items }">
 					<div class="_gaps_s">
-						<MkInviteCode v-for="item in (items as Misskey.entities.Invite[])" :key="item.id" :invite="item" :onDeleted="deleted"/>
+						<MkInviteCode v-for="item in (items as Misskey.entities.InviteCode[])" :key="item.id" :invite="item" :onDeleted="deleted"/>
 					</div>
 				</template>
 			</MkPagination>
diff --git a/packages/frontend/src/pages/welcome.entrance.a.vue b/packages/frontend/src/pages/welcome.entrance.a.vue
index e1f2a0cbda..89d0eb9a83 100644
--- a/packages/frontend/src/pages/welcome.entrance.a.vue
+++ b/packages/frontend/src/pages/welcome.entrance.a.vue
@@ -48,11 +48,15 @@ import MkNumber from '@/components/MkNumber.vue';
 import MkVisitorDashboard from '@/components/MkVisitorDashboard.vue';
 import { getProxiedImageUrl } from '@/scripts/media-proxy.js';
 
-let meta = $ref<Misskey.entities.Instance>();
-let instances = $ref<any[]>();
+let meta = $ref<Misskey.entities.MetaResponse>();
+let instances = $ref<Misskey.entities.FederationInstance[]>();
 
-function getInstanceIcon(instance): string {
-  return getProxiedImageUrl(instance.iconUrl, 'preview');
+function getInstanceIcon(instance: Misskey.entities.FederationInstance): string {
+	if (!instance.iconUrl) {
+		return '';
+	}
+
+	return getProxiedImageUrl(instance.iconUrl, 'preview');
 }
 
 os.api('meta', { detail: true }).then(_meta => {
diff --git a/packages/frontend/src/scripts/api.ts b/packages/frontend/src/scripts/api.ts
index 080977e5e4..0f54f779a6 100644
--- a/packages/frontend/src/scripts/api.ts
+++ b/packages/frontend/src/scripts/api.ts
@@ -10,7 +10,12 @@ import { $i } from '@/account.js';
 export const pendingApiRequestsCount = ref(0);
 
 // Implements Misskey.api.ApiClient.request
-export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(endpoint: E, data: P = {} as any, token?: string | null | undefined, signal?: AbortSignal): Promise<Misskey.Endpoints[E]['res']> {
+export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(
+	endpoint: E,
+	data: P = {} as any,
+	token?: string | null | undefined,
+	signal?: AbortSignal,
+): Promise<Misskey.api.SwitchCaseResponseType<E, P>> {
 	if (endpoint.includes('://')) throw new Error('invalid endpoint');
 	pendingApiRequestsCount.value++;
 
@@ -51,7 +56,12 @@ export function api<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoin
 	return promise;
 }
 
-export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(hostUrl: string, endpoint: E, data: P = {} as any, token?: string | null | undefined, signal?: AbortSignal): Promise<Misskey.Endpoints[E]['res']> {
+export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(
+	hostUrl: string,
+	endpoint: E, data: P = {} as any,
+	token?: string | null | undefined,
+	signal?: AbortSignal,
+): Promise<Misskey.api.SwitchCaseResponseType<E, P>> {
 	if (!/^https?:\/\//.test(hostUrl)) throw new Error('invalid host name');
 	if (endpoint.includes('://')) throw new Error('invalid endpoint');
 	pendingApiRequestsCount.value++;
@@ -95,7 +105,10 @@ export function apiExternal<E extends keyof Misskey.Endpoints, P extends Misskey
 }
 
 // Implements Misskey.api.ApiClient.request
-export function apiGet <E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(endpoint: E, data: P = {} as any): Promise<Misskey.Endpoints[E]['res']> {
+export function apiGet<E extends keyof Misskey.Endpoints, P extends Misskey.Endpoints[E]['req']>(
+	endpoint: E,
+	data: P = {} as any,
+): Promise<Misskey.api.SwitchCaseResponseType<E, P>> {
 	pendingApiRequestsCount.value++;
 
 	const onFinally = () => {
diff --git a/packages/frontend/src/ui/_common_/statusbar-federation.vue b/packages/frontend/src/ui/_common_/statusbar-federation.vue
index ff980e0d88..a4ea916d23 100644
--- a/packages/frontend/src/ui/_common_/statusbar-federation.vue
+++ b/packages/frontend/src/ui/_common_/statusbar-federation.vue
@@ -47,7 +47,7 @@ const props = defineProps<{
 	refreshIntervalSec?: number;
 }>();
 
-const instances = ref<Misskey.entities.Instance[]>([]);
+const instances = ref<Misskey.entities.FederationInstance[]>([]);
 const fetching = ref(true);
 let key = $ref(0);
 
diff --git a/packages/misskey-js/etc/misskey-js.api.md b/packages/misskey-js/etc/misskey-js.api.md
index dc93c4be3b..4e6e2adc02 100644
--- a/packages/misskey-js/etc/misskey-js.api.md
+++ b/packages/misskey-js/etc/misskey-js.api.md
@@ -21,57 +21,326 @@ declare namespace acct {
 }
 export { acct }
 
-// Warning: (ae-forgotten-export) The symbol "TODO_2" needs to be exported by the entry point index.d.ts
+// Warning: (ae-forgotten-export) The symbol "operations" needs to be exported by the entry point index.d.ts
 //
 // @public (undocumented)
-type Ad = TODO_2;
+type AdminAbuseUserReportsRequest = operations['admin/abuse-user-reports']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type AdminInstanceMetadata = DetailedInstanceMetadata & {
-    blockedHosts: string[];
-    silencedHosts: string[];
-    app192IconUrl: string | null;
-    app512IconUrl: string | null;
-    manifestJsonOverride: string;
-};
+type AdminAbuseUserReportsResponse = operations['admin/abuse-user-reports']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Announcement = {
-    id: ID;
-    createdAt: DateString;
-    updatedAt: DateString | null;
-    text: string;
-    title: string;
-    imageUrl: string | null;
-    display: 'normal' | 'banner' | 'dialog';
-    icon: 'info' | 'warning' | 'error' | 'success';
-    needConfirmationToRead: boolean;
-    forYou: boolean;
-    isRead?: boolean;
-};
+type AdminAccountsCreateRequest = operations['admin/accounts/create']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type Antenna = {
-    id: ID;
-    createdAt: DateString;
-    name: string;
-    keywords: string[][];
-    excludeKeywords: string[][];
-    src: 'home' | 'all' | 'users' | 'list' | 'group';
-    userListId: ID | null;
-    userGroupId: ID | null;
-    users: string[];
-    caseSensitive: boolean;
-    localOnly: boolean;
-    notify: boolean;
-    withReplies: boolean;
-    withFile: boolean;
-    hasUnreadNote: boolean;
-};
+type AdminAccountsCreateResponse = operations['admin/accounts/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAccountsDeleteRequest = operations['admin/accounts/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAccountsFindByEmailRequest = operations['admin/accounts/find-by-email']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAdCreateRequest = operations['admin/ad/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAdDeleteRequest = operations['admin/ad/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAdListRequest = operations['admin/ad/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAdUpdateRequest = operations['admin/ad/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsCreateRequest = operations['admin/announcements/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsCreateResponse = operations['admin/announcements/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsDeleteRequest = operations['admin/announcements/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsListRequest = operations['admin/announcements/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsListResponse = operations['admin/announcements/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAnnouncementsUpdateRequest = operations['admin/announcements/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAvatarDecorationsCreateRequest = operations['admin/avatar-decorations/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAvatarDecorationsDeleteRequest = operations['admin/avatar-decorations/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAvatarDecorationsListRequest = operations['admin/avatar-decorations/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAvatarDecorationsListResponse = operations['admin/avatar-decorations/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminAvatarDecorationsUpdateRequest = operations['admin/avatar-decorations/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDeleteAccountResponse = operations['admin/delete-account']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDeleteAllFilesOfAUserRequest = operations['admin/delete-all-files-of-a-user']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDriveFilesRequest = operations['admin/drive/files']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDriveFilesResponse = operations['admin/drive/files']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDriveShowFileRequest = operations['admin/drive/show-file']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminDriveShowFileResponse = operations['admin/drive/show-file']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiAddAliasesBulkRequest = operations['admin/emoji/add-aliases-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiAddRequest = operations['admin/emoji/add']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiCopyRequest = operations['admin/emoji/copy']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiCopyResponse = operations['admin/emoji/copy']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiDeleteBulkRequest = operations['admin/emoji/delete-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiDeleteRequest = operations['admin/emoji/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiListRemoteRequest = operations['admin/emoji/list-remote']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiListRemoteResponse = operations['admin/emoji/list-remote']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiListRequest = operations['admin/emoji/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiListResponse = operations['admin/emoji/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiRemoveAliasesBulkRequest = operations['admin/emoji/remove-aliases-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiSetAliasesBulkRequest = operations['admin/emoji/set-aliases-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiSetCategoryBulkRequest = operations['admin/emoji/set-category-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiSetLicenseBulkRequest = operations['admin/emoji/set-license-bulk']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminEmojiUpdateRequest = operations['admin/emoji/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminFederationDeleteAllFilesRequest = operations['admin/federation/delete-all-files']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminFederationRefreshRemoteInstanceMetadataRequest = operations['admin/federation/refresh-remote-instance-metadata']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminFederationRemoveAllFollowingRequest = operations['admin/federation/remove-all-following']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminFederationUpdateInstanceRequest = operations['admin/federation/update-instance']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminGetTableStatsResponse = operations['admin/get-table-stats']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminGetUserIpsRequest = operations['admin/get-user-ips']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminInviteCreateRequest = operations['admin/invite/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminInviteCreateResponse = operations['admin/invite/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminInviteListRequest = operations['admin/invite/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminInviteListResponse = operations['admin/invite/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminMetaResponse = operations['admin/meta']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminPromoCreateRequest = operations['admin/promo/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminQueueDeliverDelayedResponse = operations['admin/queue/deliver-delayed']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminQueueInboxDelayedResponse = operations['admin/queue/inbox-delayed']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminQueuePromoteRequest = operations['admin/queue/promote']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminQueueStatsResponse = operations['admin/queue/stats']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRelaysAddRequest = operations['admin/relays/add']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRelaysAddResponse = operations['admin/relays/add']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRelaysListResponse = operations['admin/relays/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRelaysRemoveRequest = operations['admin/relays/remove']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminResetPasswordRequest = operations['admin/reset-password']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminResetPasswordResponse = operations['admin/reset-password']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminResolveAbuseUserReportRequest = operations['admin/resolve-abuse-user-report']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesAssignRequest = operations['admin/roles/assign']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesDeleteRequest = operations['admin/roles/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesShowRequest = operations['admin/roles/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesUnassignRequest = operations['admin/roles/unassign']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesUpdateDefaultPoliciesRequest = operations['admin/roles/update-default-policies']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesUpdateRequest = operations['admin/roles/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminRolesUsersRequest = operations['admin/roles/users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSendEmailRequest = operations['admin/send-email']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminServerInfoResponse = operations['admin/server-info']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowModerationLogsRequest = operations['admin/show-moderation-logs']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowModerationLogsResponse = operations['admin/show-moderation-logs']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowUserRequest = operations['admin/show-user']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowUserResponse = operations['admin/show-user']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowUsersRequest = operations['admin/show-users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminShowUsersResponse = operations['admin/show-users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AdminSuspendUserRequest = operations['admin/suspend-user']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminUnsetUserAvatarRequest = operations['admin/unset-user-avatar']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminUnsetUserBannerRequest = operations['admin/unset-user-banner']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminUnsuspendUserRequest = operations['admin/unsuspend-user']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminUpdateMetaRequest = operations['admin/update-meta']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AdminUpdateUserNoteRequest = operations['admin/update-user-note']['requestBody']['content']['application/json'];
+
+// Warning: (ae-forgotten-export) The symbol "components" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+type Announcement = components['schemas']['Announcement'];
+
+// @public (undocumented)
+type AnnouncementsRequest = operations['announcements']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AnnouncementsResponse = operations['announcements']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Antenna = components['schemas']['Antenna'];
+
+// @public (undocumented)
+type AntennasCreateRequest = operations['antennas/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasCreateResponse = operations['antennas/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasDeleteRequest = operations['antennas/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasListResponse = operations['antennas/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasNotesRequest = operations['antennas/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasNotesResponse = operations['antennas/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasShowRequest = operations['antennas/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasShowResponse = operations['antennas/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasUpdateRequest = operations['antennas/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AntennasUpdateResponse = operations['antennas/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ApGetRequest = operations['ap/get']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ApGetResponse = operations['ap/get']['responses']['200']['content']['application/json'];
 
 declare namespace api {
     export {
         isAPIError,
+        SwitchCaseResponseType,
         APIError,
         FetchLike,
         APIClient
@@ -92,16 +361,8 @@ class APIClient {
     fetch: FetchLike;
     // (undocumented)
     origin: string;
-    // Warning: (ae-forgotten-export) The symbol "IsCaseMatched" needs to be exported by the entry point index.d.ts
-    // Warning: (ae-forgotten-export) The symbol "GetCaseResult" needs to be exported by the entry point index.d.ts
-    //
     // (undocumented)
-    request<E extends keyof Endpoints, P extends Endpoints[E]['req']>(endpoint: E, params?: P, credential?: string | null | undefined): Promise<Endpoints[E]['res'] extends {
-        $switch: {
-            $cases: [any, any][];
-            $default: any;
-        };
-    } ? IsCaseMatched<E, P, 0> extends true ? GetCaseResult<E, P, 0> : IsCaseMatched<E, P, 1> extends true ? GetCaseResult<E, P, 1> : IsCaseMatched<E, P, 2> extends true ? GetCaseResult<E, P, 2> : IsCaseMatched<E, P, 3> extends true ? GetCaseResult<E, P, 3> : IsCaseMatched<E, P, 4> extends true ? GetCaseResult<E, P, 4> : IsCaseMatched<E, P, 5> extends true ? GetCaseResult<E, P, 5> : IsCaseMatched<E, P, 6> extends true ? GetCaseResult<E, P, 6> : IsCaseMatched<E, P, 7> extends true ? GetCaseResult<E, P, 7> : IsCaseMatched<E, P, 8> extends true ? GetCaseResult<E, P, 8> : IsCaseMatched<E, P, 9> extends true ? GetCaseResult<E, P, 9> : Endpoints[E]['res']['$switch']['$default'] : Endpoints[E]['res']>;
+    request<E extends keyof Endpoints, P extends Endpoints[E]['req']>(endpoint: E, params?: P, credential?: string | null): Promise<SwitchCaseResponseType<E, P>>;
 }
 
 // @public (undocumented)
@@ -114,41 +375,67 @@ type APIError = {
 };
 
 // @public (undocumented)
-type App = TODO_2;
+type App = components['schemas']['App'];
 
 // @public (undocumented)
-type AuthSession = {
-    id: ID;
-    app: App;
-    token: string;
-};
+type AppCreateRequest = operations['app/create']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type Blocking = {
-    id: ID;
-    createdAt: DateString;
-    blockeeId: User['id'];
-    blockee: UserDetailed;
-};
+type AppCreateResponse = operations['app/create']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Channel = {
-    id: ID;
-    lastNotedAt: Date | null;
-    userId: User['id'] | null;
-    user: User | null;
-    name: string;
-    description: string | null;
-    bannerId: DriveFile['id'] | null;
-    banner: DriveFile | null;
-    pinnedNoteIds: string[];
-    color: string;
-    isArchived: boolean;
-    notesCount: number;
-    usersCount: number;
-    isSensitive: boolean;
-    allowRenoteToExternal: boolean;
-};
+type AppShowRequest = operations['app/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AppShowResponse = operations['app/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ApShowRequest = operations['ap/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ApShowResponse = operations['ap/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionGenerateRequest = operations['auth/session/generate']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionGenerateResponse = operations['auth/session/generate']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionShowRequest = operations['auth/session/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionShowResponse = operations['auth/session/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionUserkeyRequest = operations['auth/session/userkey']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type AuthSessionUserkeyResponse = operations['auth/session/userkey']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Blocking = components['schemas']['Blocking'];
+
+// @public (undocumented)
+type BlockingCreateRequest = operations['blocking/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type BlockingCreateResponse = operations['blocking/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type BlockingDeleteRequest = operations['blocking/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type BlockingDeleteResponse = operations['blocking/delete']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type BlockingListRequest = operations['blocking/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type BlockingListResponse = operations['blocking/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Channel = components['schemas']['Channel'];
 
 // Warning: (ae-forgotten-export) The symbol "AnyOf" needs to be exported by the entry point index.d.ts
 //
@@ -197,9 +484,6 @@ export type Channels = {
             readAllUnreadMentions: () => void;
             unreadSpecifiedNote: (payload: Note['id']) => void;
             readAllUnreadSpecifiedNotes: () => void;
-            readAllMessagingMessages: () => void;
-            messagingMessage: (payload: MessagingMessage) => void;
-            unreadMessagingMessage: (payload: MessagingMessage) => void;
             readAllAntennas: () => void;
             unreadAntenna: (payload: Antenna) => void;
             readAllAnnouncements: () => void;
@@ -245,27 +529,10 @@ export type Channels = {
         };
         receives: null;
     };
-    messaging: {
-        params: {
-            otherparty?: User['id'] | null;
-            group?: UserGroup['id'] | null;
-        };
+    serverStats: {
+        params: null;
         events: {
-            message: (payload: MessagingMessage) => void;
-            deleted: (payload: MessagingMessage['id']) => void;
-            read: (payload: MessagingMessage['id'][]) => void;
-            typers: (payload: User[]) => void;
-        };
-        receives: {
-            read: {
-                id: MessagingMessage['id'];
-            };
-        };
-    };
-    serverStats: {
-        params: null;
-        events: {
-            stats: (payload: FIXME) => void;
+            stats: (payload: FIXME) => void;
         };
         receives: {
             requestLog: {
@@ -289,2292 +556,1226 @@ export type Channels = {
 };
 
 // @public (undocumented)
-type Clip = TODO_2;
+type ChannelsCreateRequest = operations['channels/create']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type CustomEmoji = {
-    id: string;
-    name: string;
-    url: string;
-    category: string;
-    aliases: string[];
-};
+type ChannelsCreateResponse = operations['channels/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsFavoriteRequest = operations['channels/favorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsFeaturedResponse = operations['channels/featured']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsFollowedRequest = operations['channels/followed']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsFollowedResponse = operations['channels/followed']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsFollowRequest = operations['channels/follow']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsMyFavoritesResponse = operations['channels/my-favorites']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsOwnedRequest = operations['channels/owned']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsOwnedResponse = operations['channels/owned']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsSearchRequest = operations['channels/search']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsSearchResponse = operations['channels/search']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsShowRequest = operations['channels/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsShowResponse = operations['channels/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsTimelineRequest = operations['channels/timeline']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsTimelineResponse = operations['channels/timeline']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsUnfavoriteRequest = operations['channels/unfavorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsUnfollowRequest = operations['channels/unfollow']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsUpdateRequest = operations['channels/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChannelsUpdateResponse = operations['channels/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsActiveUsersRequest = operations['charts/active-users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsActiveUsersResponse = operations['charts/active-users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsApRequestRequest = operations['charts/ap-request']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsApRequestResponse = operations['charts/ap-request']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsDriveRequest = operations['charts/drive']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsDriveResponse = operations['charts/drive']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsFederationRequest = operations['charts/federation']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsFederationResponse = operations['charts/federation']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsInstanceRequest = operations['charts/instance']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsInstanceResponse = operations['charts/instance']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsNotesRequest = operations['charts/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsNotesResponse = operations['charts/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserDriveRequest = operations['charts/user/drive']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserDriveResponse = operations['charts/user/drive']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserFollowingRequest = operations['charts/user/following']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserFollowingResponse = operations['charts/user/following']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserNotesRequest = operations['charts/user/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserNotesResponse = operations['charts/user/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserPvRequest = operations['charts/user/pv']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserPvResponse = operations['charts/user/pv']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserReactionsRequest = operations['charts/user/reactions']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUserReactionsResponse = operations['charts/user/reactions']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUsersRequest = operations['charts/users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ChartsUsersResponse = operations['charts/users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Clip = components['schemas']['Clip'];
+
+// @public (undocumented)
+type ClipsAddNoteRequest = operations['clips/add-note']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsCreateRequest = operations['clips/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsCreateResponse = operations['clips/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsDeleteRequest = operations['clips/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsFavoriteRequest = operations['clips/favorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsListResponse = operations['clips/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsMyFavoritesResponse = operations['clips/my-favorites']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsNotesRequest = operations['clips/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsNotesResponse = operations['clips/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsRemoveNoteRequest = operations['clips/remove-note']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsShowRequest = operations['clips/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsShowResponse = operations['clips/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsUnfavoriteRequest = operations['clips/unfavorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsUpdateRequest = operations['clips/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ClipsUpdateResponse = operations['clips/update']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
 type DateString = string;
 
 // @public (undocumented)
-type DetailedInstanceMetadata = LiteInstanceMetadata & {
-    pinnedPages: string[];
-    pinnedClipId: string | null;
-    cacheRemoteFiles: boolean;
-    cacheRemoteSensitiveFiles: boolean;
-    requireSetup: boolean;
-    proxyAccountName: string | null;
-    features: Record<string, any>;
-};
+type DriveFile = components['schemas']['DriveFile'];
 
 // @public (undocumented)
-type DriveFile = {
-    id: ID;
-    createdAt: DateString;
-    isSensitive: boolean;
-    name: string;
-    thumbnailUrl: string;
-    url: string;
-    type: string;
-    size: number;
-    md5: string;
-    blurhash: string;
-    comment: string | null;
-    properties: Record<string, any>;
-};
+type DriveFilesAttachedNotesRequest = operations['drive/files/attached-notes']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type DriveFolder = TODO_2;
+type DriveFilesAttachedNotesResponse = operations['drive/files/attached-notes']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-export type Endpoints = {
-    'admin/abuse-user-reports': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/delete-all-files-of-a-user': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'admin/unset-user-avatar': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'admin/unset-user-banner': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'admin/delete-logs': {
-        req: NoParams;
-        res: null;
-    };
-    'admin/get-index-stats': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/get-table-stats': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/invite': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/logs': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/meta': {
-        req: NoParams;
-        res: AdminInstanceMetadata;
-    };
-    'admin/reset-password': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/resolve-abuse-user-report': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/resync-chart': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/send-email': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/server-info': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/show-moderation-logs': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/show-user': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/show-users': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/silence-user': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/suspend-user': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/unsilence-user': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/unsuspend-user': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/update-meta': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/vacuum': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/accounts/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/ad/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/ad/delete': {
-        req: {
-            id: Ad['id'];
+type DriveFilesCheckExistenceRequest = operations['drive/files/check-existence']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesCheckExistenceResponse = operations['drive/files/check-existence']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesCreateRequest = operations['drive/files/create']['requestBody']['content']['multipart/form-data'];
+
+// @public (undocumented)
+type DriveFilesCreateResponse = operations['drive/files/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesDeleteRequest = operations['drive/files/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesFindByHashRequest = operations['drive/files/find-by-hash']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesFindByHashResponse = operations['drive/files/find-by-hash']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesFindRequest = operations['drive/files/find']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesFindResponse = operations['drive/files/find']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesRequest = operations['drive/files']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesResponse = operations['drive/files']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesShowRequest = operations['drive/files/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesShowResponse = operations['drive/files/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesUpdateRequest = operations['drive/files/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesUpdateResponse = operations['drive/files/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFilesUploadFromUrlRequest = operations['drive/files/upload-from-url']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFolder = components['schemas']['DriveFolder'];
+
+// @public (undocumented)
+type DriveFoldersCreateRequest = operations['drive/folders/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersCreateResponse = operations['drive/folders/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersDeleteRequest = operations['drive/folders/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersFindRequest = operations['drive/folders/find']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersFindResponse = operations['drive/folders/find']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersRequest = operations['drive/folders']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersResponse = operations['drive/folders']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersShowRequest = operations['drive/folders/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersShowResponse = operations['drive/folders/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersUpdateRequest = operations['drive/folders/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveFoldersUpdateResponse = operations['drive/folders/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveResponse = operations['drive']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type DriveStreamRequest = operations['drive/stream']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type DriveStreamResponse = operations['drive/stream']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type EmailAddressAvailableRequest = operations['email-address/available']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type EmailAddressAvailableResponse = operations['email-address/available']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type EmojiDetailed = components['schemas']['EmojiDetailed'];
+
+// @public (undocumented)
+type EmojiRequest = operations['emoji']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type EmojiResponse = operations['emoji']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type EmojiSimple = components['schemas']['EmojiSimple'];
+
+// @public (undocumented)
+type EmojisResponse = operations['emojis']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type EmptyRequest = Record<string, unknown> | undefined;
+
+// @public (undocumented)
+type EmptyResponse = Record<string, unknown> | undefined;
+
+// @public (undocumented)
+type EndpointRequest = operations['endpoint']['requestBody']['content']['application/json'];
+
+// Warning: (ae-forgotten-export) The symbol "Overwrite" needs to be exported by the entry point index.d.ts
+// Warning: (ae-forgotten-export) The symbol "Endpoints_2" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+export type Endpoints = Overwrite<Endpoints_2, {
+    'users/show': {
+        req: UsersShowRequest;
+        res: {
+            $switch: {
+                $cases: [
+                [
+                    {
+                    userIds?: string[];
+                },
+                UserDetailed[]
+                ]
+                ];
+                $default: UserDetailed;
+            };
         };
-        res: null;
-    };
-    'admin/ad/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/ad/update': {
-        req: TODO;
-        res: TODO;
     };
-    'admin/announcements/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/announcements/delete': {
-        req: {
-            id: Announcement['id'];
-        };
-        res: null;
-    };
-    'admin/announcements/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/announcements/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/drive/clean-remote-files': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/drive/cleanup': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/drive/files': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/drive/show-file': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/add': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/copy': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/list-remote': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/remove': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/emoji/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/federation/delete-all-files': {
-        req: {
-            host: string;
-        };
-        res: null;
-    };
-    'admin/federation/refresh-remote-instance-metadata': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/federation/remove-all-following': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/federation/update-instance': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/invite/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/invite/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/moderators/add': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/moderators/remove': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/promo/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/queue/clear': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/queue/deliver-delayed': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/queue/inbox-delayed': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/queue/jobs': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/queue/stats': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/relays/add': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/relays/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'admin/relays/remove': {
-        req: TODO;
-        res: TODO;
-    };
-    'announcements': {
-        req: {
-            limit?: number;
-            withUnreads?: boolean;
-            sinceId?: Announcement['id'];
-            untilId?: Announcement['id'];
-        };
-        res: Announcement[];
-    };
-    'antennas/create': {
-        req: TODO;
-        res: Antenna;
-    };
-    'antennas/delete': {
-        req: {
-            antennaId: Antenna['id'];
-        };
-        res: null;
-    };
-    'antennas/list': {
-        req: NoParams;
-        res: Antenna[];
-    };
-    'antennas/notes': {
-        req: {
-            antennaId: Antenna['id'];
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-        };
-        res: Note[];
-    };
-    'antennas/show': {
-        req: {
-            antennaId: Antenna['id'];
-        };
-        res: Antenna;
-    };
-    'antennas/update': {
-        req: TODO;
-        res: Antenna;
-    };
-    'ap/get': {
-        req: {
-            uri: string;
-        };
-        res: Record<string, any>;
-    };
-    'ap/show': {
-        req: {
-            uri: string;
-        };
-        res: {
-            type: 'Note';
-            object: Note;
-        } | {
-            type: 'User';
-            object: UserDetailed;
-        };
-    };
-    'app/create': {
-        req: TODO;
-        res: App;
-    };
-    'app/show': {
-        req: {
-            appId: App['id'];
-        };
-        res: App;
-    };
-    'auth/accept': {
-        req: {
-            token: string;
-        };
-        res: null;
-    };
-    'auth/session/generate': {
-        req: {
-            appSecret: string;
-        };
-        res: {
-            token: string;
-            url: string;
-        };
-    };
-    'auth/session/show': {
-        req: {
-            token: string;
-        };
-        res: AuthSession;
-    };
-    'auth/session/userkey': {
-        req: {
-            appSecret: string;
-            token: string;
-        };
-        res: {
-            accessToken: string;
-            user: User;
-        };
-    };
-    'blocking/create': {
-        req: {
-            userId: User['id'];
-        };
-        res: UserDetailed;
-    };
-    'blocking/delete': {
-        req: {
-            userId: User['id'];
-        };
-        res: UserDetailed;
-    };
-    'blocking/list': {
-        req: {
-            limit?: number;
-            sinceId?: Blocking['id'];
-            untilId?: Blocking['id'];
-        };
-        res: Blocking[];
-    };
-    'channels/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/featured': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/follow': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/followed': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/owned': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/pin-note': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/timeline': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/unfollow': {
-        req: TODO;
-        res: TODO;
-    };
-    'channels/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'charts/active-users': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: {
-            local: {
-                users: number[];
-            };
-            remote: {
-                users: number[];
-            };
-        };
-    };
-    'charts/drive': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: {
-            local: {
-                decCount: number[];
-                decSize: number[];
-                incCount: number[];
-                incSize: number[];
-                totalCount: number[];
-                totalSize: number[];
-            };
-            remote: {
-                decCount: number[];
-                decSize: number[];
-                incCount: number[];
-                incSize: number[];
-                totalCount: number[];
-                totalSize: number[];
-            };
-        };
-    };
-    'charts/federation': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: {
-            instance: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-        };
-    };
-    'charts/hashtag': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: TODO;
-    };
-    'charts/instance': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-            host: string;
-        };
-        res: {
-            drive: {
-                decFiles: number[];
-                decUsage: number[];
-                incFiles: number[];
-                incUsage: number[];
-                totalFiles: number[];
-                totalUsage: number[];
-            };
-            followers: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-            following: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-            notes: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-                diffs: {
-                    normal: number[];
-                    renote: number[];
-                    reply: number[];
-                };
-            };
-            requests: {
-                failed: number[];
-                received: number[];
-                succeeded: number[];
-            };
-            users: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-        };
-    };
-    'charts/network': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: TODO;
-    };
-    'charts/notes': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: {
-            local: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-                diffs: {
-                    normal: number[];
-                    renote: number[];
-                    reply: number[];
-                };
-            };
-            remote: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-                diffs: {
-                    normal: number[];
-                    renote: number[];
-                    reply: number[];
-                };
-            };
-        };
-    };
-    'charts/user/drive': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-            userId: User['id'];
-        };
-        res: {
-            decCount: number[];
-            decSize: number[];
-            incCount: number[];
-            incSize: number[];
-            totalCount: number[];
-            totalSize: number[];
-        };
-    };
-    'charts/user/following': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-            userId: User['id'];
-        };
-        res: TODO;
-    };
-    'charts/user/notes': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-            userId: User['id'];
-        };
-        res: {
-            dec: number[];
-            inc: number[];
-            total: number[];
-            diffs: {
-                normal: number[];
-                renote: number[];
-                reply: number[];
-            };
-        };
-    };
-    'charts/user/reactions': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-            userId: User['id'];
-        };
-        res: TODO;
-    };
-    'charts/users': {
-        req: {
-            span: 'day' | 'hour';
-            limit?: number;
-            offset?: number | null;
-        };
-        res: {
-            local: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-            remote: {
-                dec: number[];
-                inc: number[];
-                total: number[];
-            };
-        };
-    };
-    'clips/add-note': {
-        req: TODO;
-        res: TODO;
-    };
-    'clips/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'clips/delete': {
-        req: {
-            clipId: Clip['id'];
-        };
-        res: null;
-    };
-    'clips/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'clips/notes': {
-        req: TODO;
-        res: TODO;
-    };
-    'clips/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'clips/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'drive': {
-        req: NoParams;
-        res: {
-            capacity: number;
-            usage: number;
-        };
-    };
-    'drive/files': {
-        req: {
-            folderId?: DriveFolder['id'] | null;
-            type?: DriveFile['type'] | null;
-            limit?: number;
-            sinceId?: DriveFile['id'];
-            untilId?: DriveFile['id'];
-        };
-        res: DriveFile[];
-    };
-    'drive/files/attached-notes': {
-        req: TODO;
-        res: TODO;
-    };
-    'drive/files/check-existence': {
-        req: TODO;
-        res: TODO;
-    };
-    'drive/files/create': {
-        req: {
-            folderId?: string;
-            name?: string;
-            comment?: string;
-            isSentisive?: boolean;
-            force?: boolean;
-        };
-        res: DriveFile;
-    };
-    'drive/files/delete': {
-        req: {
-            fileId: DriveFile['id'];
-        };
-        res: null;
-    };
-    'drive/files/find-by-hash': {
-        req: TODO;
-        res: TODO;
-    };
-    'drive/files/find': {
-        req: {
-            name: string;
-            folderId?: DriveFolder['id'] | null;
-        };
-        res: DriveFile[];
-    };
-    'drive/files/show': {
-        req: {
-            fileId?: DriveFile['id'];
-            url?: string;
-        };
-        res: DriveFile;
-    };
-    'drive/files/update': {
-        req: {
-            fileId: DriveFile['id'];
-            folderId?: DriveFolder['id'] | null;
-            name?: string;
-            isSensitive?: boolean;
-            comment?: string | null;
-        };
-        res: DriveFile;
-    };
-    'drive/files/upload-from-url': {
-        req: {
-            url: string;
-            folderId?: DriveFolder['id'] | null;
-            isSensitive?: boolean;
-            comment?: string | null;
-            marker?: string | null;
-            force?: boolean;
-        };
-        res: null;
-    };
-    'drive/folders': {
-        req: {
-            folderId?: DriveFolder['id'] | null;
-            limit?: number;
-            sinceId?: DriveFile['id'];
-            untilId?: DriveFile['id'];
-        };
-        res: DriveFolder[];
-    };
-    'drive/folders/create': {
-        req: {
-            name?: string;
-            parentId?: DriveFolder['id'] | null;
-        };
-        res: DriveFolder;
-    };
-    'drive/folders/delete': {
-        req: {
-            folderId: DriveFolder['id'];
-        };
-        res: null;
-    };
-    'drive/folders/find': {
-        req: {
-            name: string;
-            parentId?: DriveFolder['id'] | null;
-        };
-        res: DriveFolder[];
-    };
-    'drive/folders/show': {
-        req: {
-            folderId: DriveFolder['id'];
-        };
-        res: DriveFolder;
-    };
-    'drive/folders/update': {
-        req: {
-            folderId: DriveFolder['id'];
-            name?: string;
-            parentId?: DriveFolder['id'] | null;
-        };
-        res: DriveFolder;
-    };
-    'drive/stream': {
-        req: {
-            type?: DriveFile['type'] | null;
-            limit?: number;
-            sinceId?: DriveFile['id'];
-            untilId?: DriveFile['id'];
-        };
-        res: DriveFile[];
-    };
-    'endpoint': {
-        req: {
-            endpoint: string;
-        };
-        res: {
-            params: {
-                name: string;
-                type: string;
-            }[];
-        };
-    };
-    'endpoints': {
-        req: NoParams;
-        res: string[];
-    };
-    'federation/dns': {
-        req: {
-            host: string;
-        };
-        res: {
-            a: string[];
-            aaaa: string[];
-            cname: string[];
-            txt: string[];
-        };
-    };
-    'federation/followers': {
-        req: {
-            host: string;
-            limit?: number;
-            sinceId?: Following['id'];
-            untilId?: Following['id'];
-        };
-        res: FollowingFolloweePopulated[];
-    };
-    'federation/following': {
-        req: {
-            host: string;
-            limit?: number;
-            sinceId?: Following['id'];
-            untilId?: Following['id'];
-        };
-        res: FollowingFolloweePopulated[];
-    };
-    'federation/instances': {
-        req: {
-            host?: string | null;
-            blocked?: boolean | null;
-            notResponding?: boolean | null;
-            suspended?: boolean | null;
-            federating?: boolean | null;
-            subscribing?: boolean | null;
-            publishing?: boolean | null;
-            limit?: number;
-            offset?: number;
-            sort?: '+pubSub' | '-pubSub' | '+notes' | '-notes' | '+users' | '-users' | '+following' | '-following' | '+followers' | '-followers' | '+caughtAt' | '-caughtAt' | '+lastCommunicatedAt' | '-lastCommunicatedAt' | '+driveUsage' | '-driveUsage' | '+driveFiles' | '-driveFiles';
-        };
-        res: Instance[];
-    };
-    'federation/show-instance': {
-        req: {
-            host: string;
-        };
-        res: Instance;
-    };
-    'federation/update-remote-user': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'federation/users': {
-        req: {
-            host: string;
-            limit?: number;
-            sinceId?: User['id'];
-            untilId?: User['id'];
-        };
-        res: UserDetailed[];
-    };
-    'following/create': {
-        req: {
-            userId: User['id'];
-            withReplies?: boolean;
-        };
-        res: User;
-    };
-    'following/delete': {
-        req: {
-            userId: User['id'];
-        };
-        res: User;
-    };
-    'following/requests/accept': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'following/requests/cancel': {
-        req: {
-            userId: User['id'];
-        };
-        res: User;
-    };
-    'following/requests/list': {
-        req: NoParams;
-        res: FollowRequest[];
-    };
-    'following/requests/reject': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'gallery/featured': {
-        req: null;
-        res: GalleryPost[];
-    };
-    'gallery/popular': {
-        req: null;
-        res: GalleryPost[];
-    };
-    'gallery/posts': {
-        req: {
-            limit?: number;
-            sinceId?: GalleryPost['id'];
-            untilId?: GalleryPost['id'];
-        };
-        res: GalleryPost[];
-    };
-    'gallery/posts/create': {
-        req: {
-            title: GalleryPost['title'];
-            description?: GalleryPost['description'];
-            fileIds: GalleryPost['fileIds'];
-            isSensitive?: GalleryPost['isSensitive'];
-        };
-        res: GalleryPost;
-    };
-    'gallery/posts/delete': {
-        req: {
-            postId: GalleryPost['id'];
-        };
-        res: null;
-    };
-    'gallery/posts/like': {
-        req: {
-            postId: GalleryPost['id'];
-        };
-        res: null;
-    };
-    'gallery/posts/show': {
-        req: {
-            postId: GalleryPost['id'];
-        };
-        res: GalleryPost;
-    };
-    'gallery/posts/unlike': {
-        req: {
-            postId: GalleryPost['id'];
-        };
-        res: null;
-    };
-    'gallery/posts/update': {
-        req: {
-            postId: GalleryPost['id'];
-            title: GalleryPost['title'];
-            description?: GalleryPost['description'];
-            fileIds: GalleryPost['fileIds'];
-            isSensitive?: GalleryPost['isSensitive'];
-        };
-        res: GalleryPost;
-    };
-    'games/reversi/games': {
-        req: TODO;
-        res: TODO;
-    };
-    'games/reversi/games/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'games/reversi/games/surrender': {
-        req: TODO;
-        res: TODO;
-    };
-    'games/reversi/invitations': {
-        req: TODO;
-        res: TODO;
-    };
-    'games/reversi/match': {
-        req: TODO;
-        res: TODO;
-    };
-    'games/reversi/match/cancel': {
-        req: TODO;
-        res: TODO;
-    };
-    'get-online-users-count': {
-        req: NoParams;
-        res: {
-            count: number;
-        };
-    };
-    'hashtags/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'hashtags/search': {
-        req: TODO;
-        res: TODO;
-    };
-    'hashtags/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'hashtags/trend': {
-        req: TODO;
-        res: TODO;
-    };
-    'hashtags/users': {
-        req: TODO;
-        res: TODO;
-    };
-    'i': {
-        req: NoParams;
-        res: User;
-    };
-    'i/apps': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/authorized-apps': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/change-password': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/delete-account': {
-        req: {
-            password: string;
-        };
-        res: null;
-    };
-    'i/export-blocking': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/export-following': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/export-mute': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/export-notes': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/export-user-lists': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/favorites': {
-        req: {
-            limit?: number;
-            sinceId?: NoteFavorite['id'];
-            untilId?: NoteFavorite['id'];
-        };
-        res: NoteFavorite[];
-    };
-    'i/gallery/likes': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/gallery/posts': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/import-following': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/import-user-lists': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/move': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/notifications': {
-        req: {
-            limit?: number;
-            sinceId?: Notification_2['id'];
-            untilId?: Notification_2['id'];
-            following?: boolean;
-            markAsRead?: boolean;
-            includeTypes?: Notification_2['type'][];
-            excludeTypes?: Notification_2['type'][];
-        };
-        res: Notification_2[];
-    };
-    'i/page-likes': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/pages': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/pin': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: MeDetailed;
-    };
-    'i/read-all-messaging-messages': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/read-all-unread-notes': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/read-announcement': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/regenerate-token': {
-        req: {
-            password: string;
-        };
-        res: null;
-    };
-    'i/registry/get-all': {
-        req: {
-            scope?: string[];
-        };
-        res: Record<string, any>;
-    };
-    'i/registry/get-detail': {
-        req: {
-            key: string;
-            scope?: string[];
-        };
-        res: {
-            updatedAt: DateString;
-            value: any;
-        };
-    };
-    'i/registry/get': {
-        req: {
-            key: string;
-            scope?: string[];
-        };
-        res: any;
-    };
-    'i/registry/keys-with-type': {
-        req: {
-            scope?: string[];
-        };
-        res: Record<string, 'null' | 'array' | 'number' | 'string' | 'boolean' | 'object'>;
-    };
-    'i/registry/keys': {
-        req: {
-            scope?: string[];
-        };
-        res: string[];
-    };
-    'i/registry/remove': {
-        req: {
-            key: string;
-            scope?: string[];
-        };
-        res: null;
-    };
-    'i/registry/set': {
-        req: {
-            key: string;
-            value: any;
-            scope?: string[];
-        };
-        res: null;
-    };
-    'i/revoke-token': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/signin-history': {
-        req: {
-            limit?: number;
-            sinceId?: Signin['id'];
-            untilId?: Signin['id'];
-        };
-        res: Signin[];
-    };
-    'i/unpin': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: MeDetailed;
-    };
-    'i/update-email': {
-        req: {
-            password: string;
-            email?: string | null;
-        };
-        res: MeDetailed;
-    };
-    'i/update': {
-        req: {
-            name?: string | null;
-            description?: string | null;
-            lang?: string | null;
-            location?: string | null;
-            birthday?: string | null;
-            avatarId?: DriveFile['id'] | null;
-            bannerId?: DriveFile['id'] | null;
-            fields?: {
-                name: string;
-                value: string;
-            }[];
-            isLocked?: boolean;
-            isExplorable?: boolean;
-            hideOnlineStatus?: boolean;
-            carefulBot?: boolean;
-            autoAcceptFollowed?: boolean;
-            noCrawle?: boolean;
-            isBot?: boolean;
-            isCat?: boolean;
-            injectFeaturedNote?: boolean;
-            receiveAnnouncementEmail?: boolean;
-            alwaysMarkNsfw?: boolean;
-            mutedWords?: (string[] | string)[];
-            hardMutedWords?: (string[] | string)[];
-            notificationRecieveConfig?: any;
-            emailNotificationTypes?: string[];
-            alsoKnownAs?: string[];
-        };
-        res: MeDetailed;
-    };
-    'i/user-group-invites': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/done': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/key-done': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/password-less': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/register-key': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/register': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/remove-key': {
-        req: TODO;
-        res: TODO;
-    };
-    'i/2fa/unregister': {
-        req: TODO;
-        res: TODO;
-    };
-    'invite/create': {
-        req: NoParams;
-        res: Invite;
-    };
-    'invite/delete': {
-        req: {
-            inviteId: Invite['id'];
-        };
-        res: null;
-    };
-    'invite/list': {
-        req: {
-            limit?: number;
-            sinceId?: Invite['id'];
-            untilId?: Invite['id'];
-        };
-        res: Invite[];
-    };
-    'invite/limit': {
-        req: NoParams;
-        res: InviteLimit;
-    };
-    'messaging/history': {
-        req: {
-            limit?: number;
-            group?: boolean;
-        };
-        res: MessagingMessage[];
-    };
-    'messaging/messages': {
-        req: {
-            userId?: User['id'];
-            groupId?: UserGroup['id'];
-            limit?: number;
-            sinceId?: MessagingMessage['id'];
-            untilId?: MessagingMessage['id'];
-            markAsRead?: boolean;
-        };
-        res: MessagingMessage[];
-    };
-    'messaging/messages/create': {
-        req: {
-            userId?: User['id'];
-            groupId?: UserGroup['id'];
-            text?: string;
-            fileId?: DriveFile['id'];
-        };
-        res: MessagingMessage;
-    };
-    'messaging/messages/delete': {
-        req: {
-            messageId: MessagingMessage['id'];
-        };
-        res: null;
-    };
-    'messaging/messages/read': {
-        req: {
-            messageId: MessagingMessage['id'];
-        };
-        res: null;
-    };
-    'meta': {
-        req: {
-            detail?: boolean;
-        };
-        res: {
-            $switch: {
-                $cases: [
-                [
-                    {
-                    detail: true;
-                },
-                DetailedInstanceMetadata
-                ],
-                [
-                    {
-                    detail: false;
-                },
-                LiteInstanceMetadata
-                ],
-                [
-                    {
-                    detail: boolean;
-                },
-                LiteInstanceMetadata | DetailedInstanceMetadata
-                ]
-                ];
-                $default: LiteInstanceMetadata;
-            };
-        };
-    };
-    'miauth/gen-token': {
-        req: TODO;
-        res: TODO;
-    };
-    'mute/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'mute/delete': {
-        req: {
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'mute/list': {
-        req: TODO;
-        res: TODO;
-    };
-    'my/apps': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-        };
-        res: Note[];
-    };
-    'notes/children': {
-        req: {
-            noteId: Note['id'];
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-        };
-        res: Note[];
-    };
-    'notes/clips': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/conversation': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/create': {
-        req: {
-            visibility?: 'public' | 'home' | 'followers' | 'specified';
-            visibleUserIds?: User['id'][];
-            text?: null | string;
-            cw?: null | string;
-            viaMobile?: boolean;
-            localOnly?: boolean;
-            fileIds?: DriveFile['id'][];
-            replyId?: null | Note['id'];
-            renoteId?: null | Note['id'];
-            channelId?: null | Channel['id'];
-            poll?: null | {
-                choices: string[];
-                multiple?: boolean;
-                expiresAt?: null | number;
-                expiredAfter?: null | number;
-            };
-        };
-        res: {
-            createdNote: Note;
-        };
-    };
-    'notes/delete': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notes/favorites/create': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notes/favorites/delete': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notes/featured': {
-        req: TODO;
-        res: Note[];
-    };
-    'notes/global-timeline': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'notes/hybrid-timeline': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'notes/local-timeline': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'notes/mentions': {
-        req: {
-            following?: boolean;
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-        };
-        res: Note[];
-    };
-    'notes/polls/recommendation': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/polls/vote': {
-        req: {
-            noteId: Note['id'];
-            choice: number;
-        };
-        res: null;
-    };
-    'notes/reactions': {
-        req: {
-            noteId: Note['id'];
-            type?: string | null;
-            limit?: number;
-        };
-        res: NoteReaction[];
-    };
-    'notes/reactions/create': {
-        req: {
-            noteId: Note['id'];
-            reaction: string;
-        };
-        res: null;
-    };
-    'notes/reactions/delete': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notes/renotes': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            noteId: Note['id'];
-        };
-        res: Note[];
-    };
-    'notes/replies': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            noteId: Note['id'];
-        };
-        res: Note[];
-    };
-    'notes/search-by-tag': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/search': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/show': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: Note;
-    };
-    'notes/state': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/timeline': {
-        req: {
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'notes/unrenote': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notes/user-list-timeline': {
-        req: {
-            listId: UserList['id'];
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'notes/watching/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'notes/watching/delete': {
-        req: {
-            noteId: Note['id'];
-        };
-        res: null;
-    };
-    'notifications/create': {
-        req: {
-            body: string;
-            header?: string | null;
-            icon?: string | null;
-        };
-        res: null;
-    };
-    'notifications/test-notification': {
-        req: NoParams;
-        res: null;
-    };
-    'notifications/mark-all-as-read': {
-        req: NoParams;
-        res: null;
-    };
-    'page-push': {
-        req: {
-            pageId: Page['id'];
-            event: string;
-            var?: any;
-        };
-        res: null;
-    };
-    'pages/create': {
-        req: TODO;
-        res: Page;
-    };
-    'pages/delete': {
-        req: {
-            pageId: Page['id'];
-        };
-        res: null;
-    };
-    'pages/featured': {
-        req: NoParams;
-        res: Page[];
-    };
-    'pages/like': {
-        req: {
-            pageId: Page['id'];
-        };
-        res: null;
-    };
-    'pages/show': {
-        req: {
-            pageId?: Page['id'];
-            name?: string;
-            username?: string;
-        };
-        res: Page;
-    };
-    'pages/unlike': {
-        req: {
-            pageId: Page['id'];
-        };
-        res: null;
-    };
-    'pages/update': {
-        req: TODO;
-        res: null;
-    };
-    'ping': {
-        req: NoParams;
-        res: {
-            pong: number;
-        };
-    };
-    'pinned-users': {
-        req: TODO;
-        res: TODO;
-    };
-    'promo/read': {
-        req: TODO;
-        res: TODO;
-    };
-    'request-reset-password': {
-        req: {
-            username: string;
-            email: string;
-        };
-        res: null;
-    };
-    'reset-password': {
-        req: {
-            token: string;
-            password: string;
-        };
-        res: null;
-    };
-    'room/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'room/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'signup': {
-        req: {
-            username: string;
-            password: string;
-            host?: string;
-            invitationCode?: string;
-            emailAddress?: string;
-            'hcaptcha-response'?: string;
-            'g-recaptcha-response'?: string;
-            'turnstile-response'?: string;
-        };
-        res: MeSignup | null;
-    };
-    'stats': {
-        req: NoParams;
-        res: Stats;
-    };
-    'server-info': {
-        req: NoParams;
-        res: ServerInfo;
-    };
-    'sw/register': {
-        req: TODO;
-        res: TODO;
-    };
-    'username/available': {
-        req: {
-            username: string;
-        };
-        res: {
-            available: boolean;
-        };
-    };
-    'users': {
-        req: {
-            limit?: number;
-            offset?: number;
-            sort?: UserSorting;
-            origin?: OriginType;
-        };
-        res: User[];
-    };
-    'users/clips': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/followers': {
-        req: {
-            userId?: User['id'];
-            username?: User['username'];
-            host?: User['host'] | null;
-            limit?: number;
-            sinceId?: Following['id'];
-            untilId?: Following['id'];
-        };
-        res: FollowingFollowerPopulated[];
-    };
-    'users/following': {
-        req: {
-            userId?: User['id'];
-            username?: User['username'];
-            host?: User['host'] | null;
-            limit?: number;
-            sinceId?: Following['id'];
-            untilId?: Following['id'];
-        };
-        res: FollowingFolloweePopulated[];
-    };
-    'users/gallery/posts': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/get-frequently-replied-users': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/create': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/delete': {
-        req: {
-            groupId: UserGroup['id'];
-        };
-        res: null;
-    };
-    'users/groups/invitations/accept': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/invitations/reject': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/invite': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/joined': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/owned': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/pull': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/show': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/transfer': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/groups/update': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/lists/create': {
-        req: {
-            name: string;
-        };
-        res: UserList;
-    };
-    'users/lists/delete': {
-        req: {
-            listId: UserList['id'];
-        };
-        res: null;
-    };
-    'users/lists/list': {
-        req: NoParams;
-        res: UserList[];
-    };
-    'users/lists/pull': {
-        req: {
-            listId: UserList['id'];
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'users/lists/push': {
-        req: {
-            listId: UserList['id'];
-            userId: User['id'];
-        };
-        res: null;
-    };
-    'users/lists/show': {
-        req: {
-            listId: UserList['id'];
-        };
-        res: UserList;
-    };
-    'users/lists/update': {
-        req: {
-            listId: UserList['id'];
-            name: string;
-        };
-        res: UserList;
-    };
-    'users/notes': {
-        req: {
-            userId: User['id'];
-            limit?: number;
-            sinceId?: Note['id'];
-            untilId?: Note['id'];
-            sinceDate?: number;
-            untilDate?: number;
-        };
-        res: Note[];
-    };
-    'users/pages': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/flashs': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/recommendation': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/relation': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/report-abuse': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/search-by-username-and-host': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/search': {
-        req: TODO;
-        res: TODO;
-    };
-    'users/show': {
-        req: ShowUserReq | {
-            userIds: User['id'][];
-        };
-        res: {
-            $switch: {
-                $cases: [
-                [
-                    {
-                    userIds: User['id'][];
-                },
-                UserDetailed[]
-                ]
-                ];
-                $default: UserDetailed;
-            };
-        };
-    };
-    'fetch-rss': {
-        req: {
-            url: string;
-        };
-        res: TODO;
-    };
-    'fetch-external-resources': {
-        req: {
-            url: string;
-            hash: string;
-        };
-        res: {
-            type: string;
-            data: string;
-        };
+}>;
+
+// @public (undocumented)
+type EndpointsResponse = operations['endpoints']['responses']['200']['content']['application/json'];
+
+declare namespace entities {
+    export {
+        ID,
+        DateString,
+        PageEvent,
+        ModerationLog,
+        EmptyRequest,
+        EmptyResponse,
+        AdminMetaResponse,
+        AdminAbuseUserReportsRequest,
+        AdminAbuseUserReportsResponse,
+        AdminAccountsCreateRequest,
+        AdminAccountsCreateResponse,
+        AdminAccountsDeleteRequest,
+        AdminAccountsFindByEmailRequest,
+        AdminAdCreateRequest,
+        AdminAdDeleteRequest,
+        AdminAdListRequest,
+        AdminAdUpdateRequest,
+        AdminAnnouncementsCreateRequest,
+        AdminAnnouncementsCreateResponse,
+        AdminAnnouncementsDeleteRequest,
+        AdminAnnouncementsListRequest,
+        AdminAnnouncementsListResponse,
+        AdminAnnouncementsUpdateRequest,
+        AdminAvatarDecorationsCreateRequest,
+        AdminAvatarDecorationsDeleteRequest,
+        AdminAvatarDecorationsListRequest,
+        AdminAvatarDecorationsListResponse,
+        AdminAvatarDecorationsUpdateRequest,
+        AdminDeleteAllFilesOfAUserRequest,
+        AdminUnsetUserAvatarRequest,
+        AdminUnsetUserBannerRequest,
+        AdminDriveFilesRequest,
+        AdminDriveFilesResponse,
+        AdminDriveShowFileRequest,
+        AdminDriveShowFileResponse,
+        AdminEmojiAddAliasesBulkRequest,
+        AdminEmojiAddRequest,
+        AdminEmojiCopyRequest,
+        AdminEmojiCopyResponse,
+        AdminEmojiDeleteBulkRequest,
+        AdminEmojiDeleteRequest,
+        AdminEmojiListRemoteRequest,
+        AdminEmojiListRemoteResponse,
+        AdminEmojiListRequest,
+        AdminEmojiListResponse,
+        AdminEmojiRemoveAliasesBulkRequest,
+        AdminEmojiSetAliasesBulkRequest,
+        AdminEmojiSetCategoryBulkRequest,
+        AdminEmojiSetLicenseBulkRequest,
+        AdminEmojiUpdateRequest,
+        AdminFederationDeleteAllFilesRequest,
+        AdminFederationRefreshRemoteInstanceMetadataRequest,
+        AdminFederationRemoveAllFollowingRequest,
+        AdminFederationUpdateInstanceRequest,
+        AdminGetTableStatsResponse,
+        AdminGetUserIpsRequest,
+        AdminInviteCreateRequest,
+        AdminInviteCreateResponse,
+        AdminInviteListRequest,
+        AdminInviteListResponse,
+        AdminPromoCreateRequest,
+        AdminQueueDeliverDelayedResponse,
+        AdminQueueInboxDelayedResponse,
+        AdminQueuePromoteRequest,
+        AdminQueueStatsResponse,
+        AdminRelaysAddRequest,
+        AdminRelaysAddResponse,
+        AdminRelaysListResponse,
+        AdminRelaysRemoveRequest,
+        AdminResetPasswordRequest,
+        AdminResetPasswordResponse,
+        AdminResolveAbuseUserReportRequest,
+        AdminSendEmailRequest,
+        AdminServerInfoResponse,
+        AdminShowModerationLogsRequest,
+        AdminShowModerationLogsResponse,
+        AdminShowUserRequest,
+        AdminShowUserResponse,
+        AdminShowUsersRequest,
+        AdminShowUsersResponse,
+        AdminSuspendUserRequest,
+        AdminUnsuspendUserRequest,
+        AdminUpdateMetaRequest,
+        AdminDeleteAccountRequest,
+        AdminDeleteAccountResponse,
+        AdminUpdateUserNoteRequest,
+        AdminRolesCreateRequest,
+        AdminRolesDeleteRequest,
+        AdminRolesShowRequest,
+        AdminRolesUpdateRequest,
+        AdminRolesAssignRequest,
+        AdminRolesUnassignRequest,
+        AdminRolesUpdateDefaultPoliciesRequest,
+        AdminRolesUsersRequest,
+        AnnouncementsRequest,
+        AnnouncementsResponse,
+        AntennasCreateRequest,
+        AntennasCreateResponse,
+        AntennasDeleteRequest,
+        AntennasListResponse,
+        AntennasNotesRequest,
+        AntennasNotesResponse,
+        AntennasShowRequest,
+        AntennasShowResponse,
+        AntennasUpdateRequest,
+        AntennasUpdateResponse,
+        ApGetRequest,
+        ApGetResponse,
+        ApShowRequest,
+        ApShowResponse,
+        AppCreateRequest,
+        AppCreateResponse,
+        AppShowRequest,
+        AppShowResponse,
+        AuthSessionGenerateRequest,
+        AuthSessionGenerateResponse,
+        AuthSessionShowRequest,
+        AuthSessionShowResponse,
+        AuthSessionUserkeyRequest,
+        AuthSessionUserkeyResponse,
+        BlockingCreateRequest,
+        BlockingCreateResponse,
+        BlockingDeleteRequest,
+        BlockingDeleteResponse,
+        BlockingListRequest,
+        BlockingListResponse,
+        ChannelsCreateRequest,
+        ChannelsCreateResponse,
+        ChannelsFeaturedResponse,
+        ChannelsFollowRequest,
+        ChannelsFollowedRequest,
+        ChannelsFollowedResponse,
+        ChannelsOwnedRequest,
+        ChannelsOwnedResponse,
+        ChannelsShowRequest,
+        ChannelsShowResponse,
+        ChannelsTimelineRequest,
+        ChannelsTimelineResponse,
+        ChannelsUnfollowRequest,
+        ChannelsUpdateRequest,
+        ChannelsUpdateResponse,
+        ChannelsFavoriteRequest,
+        ChannelsUnfavoriteRequest,
+        ChannelsMyFavoritesResponse,
+        ChannelsSearchRequest,
+        ChannelsSearchResponse,
+        ChartsActiveUsersRequest,
+        ChartsActiveUsersResponse,
+        ChartsApRequestRequest,
+        ChartsApRequestResponse,
+        ChartsDriveRequest,
+        ChartsDriveResponse,
+        ChartsFederationRequest,
+        ChartsFederationResponse,
+        ChartsInstanceRequest,
+        ChartsInstanceResponse,
+        ChartsNotesRequest,
+        ChartsNotesResponse,
+        ChartsUserDriveRequest,
+        ChartsUserDriveResponse,
+        ChartsUserFollowingRequest,
+        ChartsUserFollowingResponse,
+        ChartsUserNotesRequest,
+        ChartsUserNotesResponse,
+        ChartsUserPvRequest,
+        ChartsUserPvResponse,
+        ChartsUserReactionsRequest,
+        ChartsUserReactionsResponse,
+        ChartsUsersRequest,
+        ChartsUsersResponse,
+        ClipsAddNoteRequest,
+        ClipsRemoveNoteRequest,
+        ClipsCreateRequest,
+        ClipsCreateResponse,
+        ClipsDeleteRequest,
+        ClipsListResponse,
+        ClipsNotesRequest,
+        ClipsNotesResponse,
+        ClipsShowRequest,
+        ClipsShowResponse,
+        ClipsUpdateRequest,
+        ClipsUpdateResponse,
+        ClipsFavoriteRequest,
+        ClipsUnfavoriteRequest,
+        ClipsMyFavoritesResponse,
+        DriveResponse,
+        DriveFilesRequest,
+        DriveFilesResponse,
+        DriveFilesAttachedNotesRequest,
+        DriveFilesAttachedNotesResponse,
+        DriveFilesCheckExistenceRequest,
+        DriveFilesCheckExistenceResponse,
+        DriveFilesCreateRequest,
+        DriveFilesCreateResponse,
+        DriveFilesDeleteRequest,
+        DriveFilesFindByHashRequest,
+        DriveFilesFindByHashResponse,
+        DriveFilesFindRequest,
+        DriveFilesFindResponse,
+        DriveFilesShowRequest,
+        DriveFilesShowResponse,
+        DriveFilesUpdateRequest,
+        DriveFilesUpdateResponse,
+        DriveFilesUploadFromUrlRequest,
+        DriveFoldersRequest,
+        DriveFoldersResponse,
+        DriveFoldersCreateRequest,
+        DriveFoldersCreateResponse,
+        DriveFoldersDeleteRequest,
+        DriveFoldersFindRequest,
+        DriveFoldersFindResponse,
+        DriveFoldersShowRequest,
+        DriveFoldersShowResponse,
+        DriveFoldersUpdateRequest,
+        DriveFoldersUpdateResponse,
+        DriveStreamRequest,
+        DriveStreamResponse,
+        EmailAddressAvailableRequest,
+        EmailAddressAvailableResponse,
+        EndpointRequest,
+        EndpointsResponse,
+        FederationFollowersRequest,
+        FederationFollowersResponse,
+        FederationFollowingRequest,
+        FederationFollowingResponse,
+        FederationInstancesRequest,
+        FederationInstancesResponse,
+        FederationShowInstanceRequest,
+        FederationShowInstanceResponse,
+        FederationUpdateRemoteUserRequest,
+        FederationUsersRequest,
+        FederationUsersResponse,
+        FederationStatsRequest,
+        FollowingCreateRequest,
+        FollowingCreateResponse,
+        FollowingDeleteRequest,
+        FollowingDeleteResponse,
+        FollowingUpdateRequest,
+        FollowingUpdateResponse,
+        FollowingUpdateAllRequest,
+        FollowingInvalidateRequest,
+        FollowingInvalidateResponse,
+        FollowingRequestsAcceptRequest,
+        FollowingRequestsCancelRequest,
+        FollowingRequestsCancelResponse,
+        FollowingRequestsListRequest,
+        FollowingRequestsListResponse,
+        FollowingRequestsRejectRequest,
+        GalleryFeaturedRequest,
+        GalleryFeaturedResponse,
+        GalleryPopularResponse,
+        GalleryPostsRequest,
+        GalleryPostsResponse,
+        GalleryPostsCreateRequest,
+        GalleryPostsCreateResponse,
+        GalleryPostsDeleteRequest,
+        GalleryPostsLikeRequest,
+        GalleryPostsShowRequest,
+        GalleryPostsShowResponse,
+        GalleryPostsUnlikeRequest,
+        GalleryPostsUpdateRequest,
+        GalleryPostsUpdateResponse,
+        GetAvatarDecorationsResponse,
+        HashtagsListRequest,
+        HashtagsListResponse,
+        HashtagsSearchRequest,
+        HashtagsSearchResponse,
+        HashtagsShowRequest,
+        HashtagsShowResponse,
+        HashtagsTrendResponse,
+        HashtagsUsersRequest,
+        HashtagsUsersResponse,
+        IResponse,
+        IClaimAchievementRequest,
+        IFavoritesRequest,
+        IFavoritesResponse,
+        IGalleryLikesRequest,
+        IGalleryLikesResponse,
+        IGalleryPostsRequest,
+        IGalleryPostsResponse,
+        INotificationsRequest,
+        INotificationsResponse,
+        INotificationsGroupedRequest,
+        INotificationsGroupedResponse,
+        IPageLikesRequest,
+        IPageLikesResponse,
+        IPagesRequest,
+        IPagesResponse,
+        IPinRequest,
+        IPinResponse,
+        IReadAnnouncementRequest,
+        IRegistryGetAllRequest,
+        IRegistryGetDetailRequest,
+        IRegistryGetRequest,
+        IRegistryKeysWithTypeRequest,
+        IRegistryKeysRequest,
+        IRegistryRemoveRequest,
+        IRegistrySetRequest,
+        IUnpinRequest,
+        IUnpinResponse,
+        IUpdateRequest,
+        IUpdateResponse,
+        IWebhooksCreateRequest,
+        IWebhooksShowRequest,
+        IWebhooksUpdateRequest,
+        IWebhooksDeleteRequest,
+        InviteCreateResponse,
+        InviteDeleteRequest,
+        InviteListRequest,
+        InviteListResponse,
+        InviteLimitResponse,
+        MetaRequest,
+        MetaResponse,
+        EmojisResponse,
+        EmojiRequest,
+        EmojiResponse,
+        MuteCreateRequest,
+        MuteDeleteRequest,
+        MuteListRequest,
+        MuteListResponse,
+        RenoteMuteCreateRequest,
+        RenoteMuteDeleteRequest,
+        RenoteMuteListRequest,
+        RenoteMuteListResponse,
+        MyAppsRequest,
+        MyAppsResponse,
+        NotesRequest,
+        NotesResponse,
+        NotesChildrenRequest,
+        NotesChildrenResponse,
+        NotesClipsRequest,
+        NotesClipsResponse,
+        NotesConversationRequest,
+        NotesConversationResponse,
+        NotesCreateRequest,
+        NotesCreateResponse,
+        NotesDeleteRequest,
+        NotesFavoritesCreateRequest,
+        NotesFavoritesDeleteRequest,
+        NotesFeaturedRequest,
+        NotesFeaturedResponse,
+        NotesGlobalTimelineRequest,
+        NotesGlobalTimelineResponse,
+        NotesHybridTimelineRequest,
+        NotesHybridTimelineResponse,
+        NotesLocalTimelineRequest,
+        NotesLocalTimelineResponse,
+        NotesMentionsRequest,
+        NotesMentionsResponse,
+        NotesPollsRecommendationRequest,
+        NotesPollsRecommendationResponse,
+        NotesPollsVoteRequest,
+        NotesReactionsRequest,
+        NotesReactionsResponse,
+        NotesReactionsCreateRequest,
+        NotesReactionsDeleteRequest,
+        NotesRenotesRequest,
+        NotesRenotesResponse,
+        NotesRepliesRequest,
+        NotesRepliesResponse,
+        NotesSearchByTagRequest,
+        NotesSearchByTagResponse,
+        NotesSearchRequest,
+        NotesSearchResponse,
+        NotesShowRequest,
+        NotesShowResponse,
+        NotesStateRequest,
+        NotesStateResponse,
+        NotesThreadMutingCreateRequest,
+        NotesThreadMutingDeleteRequest,
+        NotesTimelineRequest,
+        NotesTimelineResponse,
+        NotesTranslateRequest,
+        NotesTranslateResponse,
+        NotesUnrenoteRequest,
+        NotesUserListTimelineRequest,
+        NotesUserListTimelineResponse,
+        NotificationsCreateRequest,
+        PagesCreateRequest,
+        PagesCreateResponse,
+        PagesDeleteRequest,
+        PagesFeaturedResponse,
+        PagesLikeRequest,
+        PagesShowRequest,
+        PagesShowResponse,
+        PagesUnlikeRequest,
+        PagesUpdateRequest,
+        FlashCreateRequest,
+        FlashDeleteRequest,
+        FlashFeaturedResponse,
+        FlashLikeRequest,
+        FlashShowRequest,
+        FlashShowResponse,
+        FlashUnlikeRequest,
+        FlashUpdateRequest,
+        FlashMyRequest,
+        FlashMyResponse,
+        FlashMyLikesRequest,
+        FlashMyLikesResponse,
+        PingResponse,
+        PinnedUsersResponse,
+        PromoReadRequest,
+        RolesShowRequest,
+        RolesUsersRequest,
+        RolesNotesRequest,
+        RolesNotesResponse,
+        RequestResetPasswordRequest,
+        ResetPasswordRequest,
+        StatsResponse,
+        SwShowRegistrationRequest,
+        SwShowRegistrationResponse,
+        SwUpdateRegistrationRequest,
+        SwUpdateRegistrationResponse,
+        SwRegisterRequest,
+        SwRegisterResponse,
+        SwUnregisterRequest,
+        TestRequest,
+        UsernameAvailableRequest,
+        UsernameAvailableResponse,
+        UsersRequest,
+        UsersResponse,
+        UsersClipsRequest,
+        UsersClipsResponse,
+        UsersFollowersRequest,
+        UsersFollowersResponse,
+        UsersFollowingRequest,
+        UsersFollowingResponse,
+        UsersGalleryPostsRequest,
+        UsersGalleryPostsResponse,
+        UsersGetFrequentlyRepliedUsersRequest,
+        UsersGetFrequentlyRepliedUsersResponse,
+        UsersFeaturedNotesRequest,
+        UsersFeaturedNotesResponse,
+        UsersListsCreateRequest,
+        UsersListsCreateResponse,
+        UsersListsDeleteRequest,
+        UsersListsListRequest,
+        UsersListsListResponse,
+        UsersListsPullRequest,
+        UsersListsPushRequest,
+        UsersListsShowRequest,
+        UsersListsShowResponse,
+        UsersListsFavoriteRequest,
+        UsersListsUnfavoriteRequest,
+        UsersListsUpdateRequest,
+        UsersListsUpdateResponse,
+        UsersListsCreateFromPublicRequest,
+        UsersListsCreateFromPublicResponse,
+        UsersListsUpdateMembershipRequest,
+        UsersListsGetMembershipsRequest,
+        UsersNotesRequest,
+        UsersNotesResponse,
+        UsersPagesRequest,
+        UsersPagesResponse,
+        UsersFlashsRequest,
+        UsersFlashsResponse,
+        UsersReactionsRequest,
+        UsersReactionsResponse,
+        UsersRecommendationRequest,
+        UsersRecommendationResponse,
+        UsersRelationRequest,
+        UsersRelationResponse,
+        UsersReportAbuseRequest,
+        UsersSearchByUsernameAndHostRequest,
+        UsersSearchByUsernameAndHostResponse,
+        UsersSearchRequest,
+        UsersSearchResponse,
+        UsersShowRequest,
+        UsersShowResponse,
+        UsersAchievementsRequest,
+        UsersUpdateMemoRequest,
+        FetchRssRequest,
+        FetchExternalResourcesRequest,
+        RetentionResponse,
+        Error_2 as Error,
+        UserLite,
+        UserDetailedNotMeOnly,
+        MeDetailedOnly,
+        UserDetailedNotMe,
+        MeDetailed,
+        UserDetailed,
+        User,
+        UserList,
+        Announcement,
+        App,
+        Note,
+        NoteReaction,
+        NoteFavorite,
+        Notification_2 as Notification,
+        DriveFile,
+        DriveFolder,
+        Following,
+        Muting,
+        RenoteMuting,
+        Blocking,
+        Hashtag,
+        InviteCode,
+        Page,
+        Channel,
+        QueueCount,
+        Antenna,
+        Clip,
+        FederationInstance,
+        GalleryPost,
+        EmojiSimple,
+        EmojiDetailed,
+        Flash
+    }
+}
+export { entities }
+
+// @public (undocumented)
+type Error_2 = components['schemas']['Error'];
+
+// @public (undocumented)
+type FederationFollowersRequest = operations['federation/followers']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationFollowersResponse = operations['federation/followers']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FederationFollowingRequest = operations['federation/following']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationFollowingResponse = operations['federation/following']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FederationInstance = components['schemas']['FederationInstance'];
+
+// @public (undocumented)
+type FederationInstancesRequest = operations['federation/instances']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationInstancesResponse = operations['federation/instances']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FederationShowInstanceRequest = operations['federation/show-instance']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationShowInstanceResponse = operations['federation/show-instance']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FederationStatsRequest = operations['federation/stats']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationUpdateRemoteUserRequest = operations['federation/update-remote-user']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationUsersRequest = operations['federation/users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FederationUsersResponse = operations['federation/users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FetchExternalResourcesRequest = operations['fetch-external-resources']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FetchLike = (input: string, init?: {
+    method?: string;
+    body?: string;
+    credentials?: RequestCredentials;
+    cache?: RequestCache;
+    headers: {
+        [key in string]: string;
     };
-};
+}) => Promise<{
+    status: number;
+    json(): Promise<any>;
+}>;
+
+// @public (undocumented)
+type FetchRssRequest = operations['fetch-rss']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+export const ffVisibility: readonly ["public", "followers", "private"];
+
+// @public (undocumented)
+type Flash = components['schemas']['Flash'];
+
+// @public (undocumented)
+type FlashCreateRequest = operations['flash/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashDeleteRequest = operations['flash/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashFeaturedResponse = operations['flash/featured']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FlashLikeRequest = operations['flash/like']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashMyLikesRequest = operations['flash/my-likes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashMyLikesResponse = operations['flash/my-likes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FlashMyRequest = operations['flash/my']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashMyResponse = operations['flash/my']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FlashShowRequest = operations['flash/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashShowResponse = operations['flash/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FlashUnlikeRequest = operations['flash/unlike']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FlashUpdateRequest = operations['flash/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type Following = components['schemas']['Following'];
+
+// @public (undocumented)
+type FollowingCreateRequest = operations['following/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingCreateResponse = operations['following/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingDeleteRequest = operations['following/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingDeleteResponse = operations['following/delete']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingInvalidateRequest = operations['following/invalidate']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingInvalidateResponse = operations['following/invalidate']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsAcceptRequest = operations['following/requests/accept']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsCancelRequest = operations['following/requests/cancel']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsCancelResponse = operations['following/requests/cancel']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsListRequest = operations['following/requests/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsListResponse = operations['following/requests/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingRequestsRejectRequest = operations['following/requests/reject']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingUpdateAllRequest = operations['following/update-all']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingUpdateRequest = operations['following/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type FollowingUpdateResponse = operations['following/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryFeaturedRequest = operations['gallery/featured']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryFeaturedResponse = operations['gallery/featured']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPopularResponse = operations['gallery/popular']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPost = components['schemas']['GalleryPost'];
+
+// @public (undocumented)
+type GalleryPostsCreateRequest = operations['gallery/posts/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsCreateResponse = operations['gallery/posts/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsDeleteRequest = operations['gallery/posts/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsLikeRequest = operations['gallery/posts/like']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsRequest = operations['gallery/posts']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsResponse = operations['gallery/posts']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsShowRequest = operations['gallery/posts/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsShowResponse = operations['gallery/posts/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsUnlikeRequest = operations['gallery/posts/unlike']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsUpdateRequest = operations['gallery/posts/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type GalleryPostsUpdateResponse = operations['gallery/posts/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type GetAvatarDecorationsResponse = operations['get-avatar-decorations']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Hashtag = components['schemas']['Hashtag'];
+
+// @public (undocumented)
+type HashtagsListRequest = operations['hashtags/list']['requestBody']['content']['application/json'];
 
-declare namespace entities {
-    export {
-        ID,
-        DateString,
-        User,
-        UserLite,
-        UserDetailed,
-        UserGroup,
-        UserList,
-        MeDetailed,
-        MeDetailedWithSecret,
-        MeSignup,
-        DriveFile,
-        DriveFolder,
-        GalleryPost,
-        Note,
-        NoteReaction,
-        Notification_2 as Notification,
-        MessagingMessage,
-        CustomEmoji,
-        LiteInstanceMetadata,
-        DetailedInstanceMetadata,
-        InstanceMetadata,
-        AdminInstanceMetadata,
-        ServerInfo,
-        Stats,
-        Page,
-        PageEvent,
-        Announcement,
-        Antenna,
-        App,
-        AuthSession,
-        Ad,
-        Clip,
-        NoteFavorite,
-        FollowRequest,
-        Channel,
-        Following,
-        FollowingFolloweePopulated,
-        FollowingFollowerPopulated,
-        Blocking,
-        Instance,
-        Signin,
-        Invite,
-        InviteLimit,
-        UserSorting,
-        OriginType,
-        ModerationLog
-    }
-}
-export { entities }
+// @public (undocumented)
+type HashtagsListResponse = operations['hashtags/list']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type FetchLike = (input: string, init?: {
-    method?: string;
-    body?: string;
-    credentials?: RequestCredentials;
-    cache?: RequestCache;
-    headers: {
-        [key in string]: string;
-    };
-}) => Promise<{
-    status: number;
-    json(): Promise<any>;
-}>;
+type HashtagsSearchRequest = operations['hashtags/search']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-export const ffVisibility: readonly ["public", "followers", "private"];
+type HashtagsSearchResponse = operations['hashtags/search']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Following = {
-    id: ID;
-    createdAt: DateString;
-    followerId: User['id'];
-    followeeId: User['id'];
-};
+type HashtagsShowRequest = operations['hashtags/show']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type FollowingFolloweePopulated = Following & {
-    followee: UserDetailed;
-};
+type HashtagsShowResponse = operations['hashtags/show']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type FollowingFollowerPopulated = Following & {
-    follower: UserDetailed;
-};
+type HashtagsTrendResponse = operations['hashtags/trend']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type FollowRequest = {
-    id: ID;
-    follower: User;
-    followee: User;
-};
+type HashtagsUsersRequest = operations['hashtags/users']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type GalleryPost = {
-    id: ID;
-    createdAt: DateString;
-    updatedAt: DateString;
-    userId: User['id'];
-    user: User;
-    title: string;
-    description: string | null;
-    fileIds: DriveFile['id'][];
-    files: DriveFile[];
-    isSensitive: boolean;
-    likedCount: number;
-    isLiked?: boolean;
-};
+type HashtagsUsersResponse = operations['hashtags/users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IClaimAchievementRequest = operations['i/claim-achievement']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
 type ID = string;
 
 // @public (undocumented)
-type Instance = {
-    id: ID;
-    firstRetrievedAt: DateString;
-    host: string;
-    usersCount: number;
-    notesCount: number;
-    followingCount: number;
-    followersCount: number;
-    driveUsage: number;
-    driveFiles: number;
-    latestRequestSentAt: DateString | null;
-    latestStatus: number | null;
-    latestRequestReceivedAt: DateString | null;
-    lastCommunicatedAt: DateString;
-    isNotResponding: boolean;
-    isSuspended: boolean;
-    isSilenced: boolean;
-    isBlocked: boolean;
-    softwareName: string | null;
-    softwareVersion: string | null;
-    openRegistrations: boolean | null;
-    name: string | null;
-    description: string | null;
-    maintainerName: string | null;
-    maintainerEmail: string | null;
-    iconUrl: string | null;
-    faviconUrl: string | null;
-    themeColor: string | null;
-    infoUpdatedAt: DateString | null;
-};
+type IFavoritesRequest = operations['i/favorites']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type InstanceMetadata = LiteInstanceMetadata | DetailedInstanceMetadata;
+type IFavoritesResponse = operations['i/favorites']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Invite = {
-    id: ID;
-    code: string;
-    expiresAt: DateString | null;
-    createdAt: DateString;
-    createdBy: UserLite | null;
-    usedBy: UserLite | null;
-    usedAt: DateString | null;
-    used: boolean;
-};
+type IGalleryLikesRequest = operations['i/gallery/likes']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type InviteLimit = {
-    remaining: number;
-};
+type IGalleryLikesResponse = operations['i/gallery/likes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IGalleryPostsRequest = operations['i/gallery/posts']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IGalleryPostsResponse = operations['i/gallery/posts']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type INotificationsGroupedRequest = operations['i/notifications-grouped']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type INotificationsGroupedResponse = operations['i/notifications-grouped']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type INotificationsRequest = operations['i/notifications']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type INotificationsResponse = operations['i/notifications']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type InviteCode = components['schemas']['InviteCode'];
+
+// @public (undocumented)
+type InviteCreateResponse = operations['invite/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type InviteDeleteRequest = operations['invite/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type InviteLimitResponse = operations['invite/limit']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type InviteListRequest = operations['invite/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type InviteListResponse = operations['invite/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IPageLikesRequest = operations['i/page-likes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IPageLikesResponse = operations['i/page-likes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IPagesRequest = operations['i/pages']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IPagesResponse = operations['i/pages']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IPinRequest = operations['i/pin']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IPinResponse = operations['i/pin']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type IReadAnnouncementRequest = operations['i/read-announcement']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryGetAllRequest = operations['i/registry/get-all']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryGetDetailRequest = operations['i/registry/get-detail']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryGetRequest = operations['i/registry/get']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistryRemoveRequest = operations['i/registry/remove']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IRegistrySetRequest = operations['i/registry/set']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IResponse = operations['i']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
 function isAPIError(reason: any): reason is APIError;
 
 // @public (undocumented)
-type LiteInstanceMetadata = {
-    maintainerName: string | null;
-    maintainerEmail: string | null;
-    version: string;
-    name: string | null;
-    shortName: string | null;
-    uri: string;
-    description: string | null;
-    langs: string[];
-    tosUrl: string | null;
-    repositoryUrl: string;
-    feedbackUrl: string;
-    impressumUrl: string | null;
-    privacyPolicyUrl: string | null;
-    disableRegistration: boolean;
-    disableLocalTimeline: boolean;
-    disableGlobalTimeline: boolean;
-    driveCapacityPerLocalUserMb: number;
-    driveCapacityPerRemoteUserMb: number;
-    emailRequiredForSignup: boolean;
-    enableHcaptcha: boolean;
-    hcaptchaSiteKey: string | null;
-    enableRecaptcha: boolean;
-    recaptchaSiteKey: string | null;
-    enableTurnstile: boolean;
-    turnstileSiteKey: string | null;
-    swPublickey: string | null;
-    themeColor: string | null;
-    mascotImageUrl: string | null;
-    bannerUrl: string | null;
-    serverErrorImageUrl: string | null;
-    infoImageUrl: string | null;
-    notFoundImageUrl: string | null;
-    iconUrl: string | null;
-    backgroundImageUrl: string | null;
-    logoImageUrl: string | null;
-    maxNoteTextLength: number;
-    enableEmail: boolean;
-    enableTwitterIntegration: boolean;
-    enableGithubIntegration: boolean;
-    enableDiscordIntegration: boolean;
-    enableServiceWorker: boolean;
-    emojis: CustomEmoji[];
-    defaultDarkTheme: string | null;
-    defaultLightTheme: string | null;
-    ads: {
-        id: ID;
-        ratio: number;
-        place: string;
-        url: string;
-        imageUrl: string;
-    }[];
-    notesPerOneAd: number;
-    translatorAvailable: boolean;
-    serverRules: string[];
-};
+type IUnpinRequest = operations['i/unpin']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type MeDetailed = UserDetailed & {
-    avatarId: DriveFile['id'];
-    bannerId: DriveFile['id'];
-    autoAcceptFollowed: boolean;
-    alwaysMarkNsfw: boolean;
-    carefulBot: boolean;
-    emailNotificationTypes: string[];
-    hasPendingReceivedFollowRequest: boolean;
-    hasUnreadAnnouncement: boolean;
-    hasUnreadAntenna: boolean;
-    hasUnreadMentions: boolean;
-    hasUnreadMessagingMessage: boolean;
-    hasUnreadNotification: boolean;
-    hasUnreadSpecifiedNotes: boolean;
-    unreadNotificationsCount: number;
-    hideOnlineStatus: boolean;
-    injectFeaturedNote: boolean;
-    integrations: Record<string, any>;
-    isDeleted: boolean;
-    isExplorable: boolean;
-    mutedWords: (string[] | string)[];
-    hardMutedWords: (string[] | string)[];
-    notificationRecieveConfig: {
-        [notificationType in typeof notificationTypes_2[number]]?: {
-            type: 'all';
-        } | {
-            type: 'never';
-        } | {
-            type: 'following';
-        } | {
-            type: 'follower';
-        } | {
-            type: 'mutualFollow';
-        } | {
-            type: 'list';
-            userListId: string;
-        };
-    };
-    noCrawle: boolean;
-    receiveAnnouncementEmail: boolean;
-    usePasswordLessLogin: boolean;
-    unreadAnnouncements: Announcement[];
-    twoFactorBackupCodesStock: 'full' | 'partial' | 'none';
-    [other: string]: any;
-};
+type IUnpinResponse = operations['i/unpin']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type MeDetailedWithSecret = MeDetailed & {
-    email: string;
-    emailVerified: boolean;
-    securityKeysList: {
-        id: string;
-        name: string;
-        lastUsed: string;
-    }[];
-};
+type IUpdateRequest = operations['i/update']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type MeSignup = MeDetailedWithSecret & {
-    token: string;
-};
+type IUpdateResponse = operations['i/update']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type MessagingMessage = {
-    id: ID;
-    createdAt: DateString;
-    file: DriveFile | null;
-    fileId: DriveFile['id'] | null;
-    isRead: boolean;
-    reads: User['id'][];
-    text: string | null;
-    user: User;
-    userId: User['id'];
-    recipient?: User | null;
-    recipientId: User['id'] | null;
-    group?: UserGroup | null;
-    groupId: UserGroup['id'] | null;
-};
+type IWebhooksCreateRequest = operations['i/webhooks/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IWebhooksDeleteRequest = operations['i/webhooks/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IWebhooksShowRequest = operations['i/webhooks/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type IWebhooksUpdateRequest = operations['i/webhooks/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type MeDetailed = components['schemas']['MeDetailed'];
+
+// @public (undocumented)
+type MeDetailedOnly = components['schemas']['MeDetailedOnly'];
+
+// @public (undocumented)
+type MetaRequest = operations['meta']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type MetaResponse = operations['meta']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
 type ModerationLog = {
@@ -2696,170 +1897,208 @@ type ModerationLog = {
 });
 
 // @public (undocumented)
-export const moderationLogTypes: readonly ["updateServerSettings", "suspend", "unsuspend", "updateUserNote", "addCustomEmoji", "updateCustomEmoji", "deleteCustomEmoji", "assignRole", "unassignRole", "createRole", "updateRole", "deleteRole", "clearQueue", "promoteQueue", "deleteDriveFile", "deleteNote", "createGlobalAnnouncement", "createUserAnnouncement", "updateGlobalAnnouncement", "updateUserAnnouncement", "deleteGlobalAnnouncement", "deleteUserAnnouncement", "resetPassword", "suspendRemoteInstance", "unsuspendRemoteInstance", "markSensitiveDriveFile", "unmarkSensitiveDriveFile", "resolveAbuseReport", "createInvitation", "createAd", "updateAd", "deleteAd", "createAvatarDecoration", "updateAvatarDecoration", "deleteAvatarDecoration", "unsetUserAvatar", "unsetUserBanner"];
+export const moderationLogTypes: readonly ["updateServerSettings", "suspend", "unsuspend", "updateUserNote", "addCustomEmoji", "updateCustomEmoji", "deleteCustomEmoji", "assignRole", "unassignRole", "createRole", "updateRole", "deleteRole", "clearQueue", "promoteQueue", "deleteDriveFile", "deleteNote", "createGlobalAnnouncement", "createUserAnnouncement", "updateGlobalAnnouncement", "updateUserAnnouncement", "deleteGlobalAnnouncement", "deleteUserAnnouncement", "resetPassword", "suspendRemoteInstance", "unsuspendRemoteInstance", "markSensitiveDriveFile", "unmarkSensitiveDriveFile", "resolveAbuseReport", "createInvitation", "createAd", "updateAd", "deleteAd", "createAvatarDecoration", "updateAvatarDecoration", "deleteAvatarDecoration", "unsetUserAvatar", "unsetUserBanner"];
+
+// @public (undocumented)
+type MuteCreateRequest = operations['mute/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type MuteDeleteRequest = operations['mute/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+export const mutedNoteReasons: readonly ["word", "manual", "spam", "other"];
+
+// @public (undocumented)
+type MuteListRequest = operations['mute/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type MuteListResponse = operations['mute/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Muting = components['schemas']['Muting'];
+
+// @public (undocumented)
+type MyAppsRequest = operations['my/apps']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type MyAppsResponse = operations['my/apps']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type Note = components['schemas']['Note'];
+
+// @public (undocumented)
+type NoteFavorite = components['schemas']['NoteFavorite'];
+
+// @public (undocumented)
+type NoteReaction = components['schemas']['NoteReaction'];
+
+// @public (undocumented)
+type NotesChildrenRequest = operations['notes/children']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesChildrenResponse = operations['notes/children']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesClipsRequest = operations['notes/clips']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesClipsResponse = operations['notes/clips']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesConversationRequest = operations['notes/conversation']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesConversationResponse = operations['notes/conversation']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesCreateRequest = operations['notes/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesCreateResponse = operations['notes/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesDeleteRequest = operations['notes/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesFavoritesCreateRequest = operations['notes/favorites/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesFavoritesDeleteRequest = operations['notes/favorites/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesFeaturedRequest = operations['notes/featured']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesFeaturedResponse = operations['notes/featured']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesGlobalTimelineRequest = operations['notes/global-timeline']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesGlobalTimelineResponse = operations['notes/global-timeline']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesHybridTimelineRequest = operations['notes/hybrid-timeline']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesHybridTimelineResponse = operations['notes/hybrid-timeline']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesLocalTimelineRequest = operations['notes/local-timeline']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesLocalTimelineResponse = operations['notes/local-timeline']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesMentionsRequest = operations['notes/mentions']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesMentionsResponse = operations['notes/mentions']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesPollsRecommendationRequest = operations['notes/polls/recommendation']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesPollsRecommendationResponse = operations['notes/polls/recommendation']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesPollsVoteRequest = operations['notes/polls/vote']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesReactionsCreateRequest = operations['notes/reactions/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesReactionsDeleteRequest = operations['notes/reactions/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesReactionsRequest = operations['notes/reactions']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesReactionsResponse = operations['notes/reactions']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesRenotesRequest = operations['notes/renotes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesRenotesResponse = operations['notes/renotes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesRepliesRequest = operations['notes/replies']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesRepliesResponse = operations['notes/replies']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesRequest = operations['notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesResponse = operations['notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesSearchByTagRequest = operations['notes/search-by-tag']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesSearchByTagResponse = operations['notes/search-by-tag']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesSearchRequest = operations['notes/search']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesSearchResponse = operations['notes/search']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesShowRequest = operations['notes/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesShowResponse = operations['notes/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesStateRequest = operations['notes/state']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesStateResponse = operations['notes/state']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type NotesThreadMutingCreateRequest = operations['notes/thread-muting/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesThreadMutingDeleteRequest = operations['notes/thread-muting/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesTimelineRequest = operations['notes/timeline']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-export const mutedNoteReasons: readonly ["word", "manual", "spam", "other"];
+type NotesTimelineResponse = operations['notes/timeline']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Note = {
-    id: ID;
-    createdAt: DateString;
-    text: string | null;
-    cw: string | null;
-    user: User;
-    userId: User['id'];
-    reply?: Note;
-    replyId: Note['id'];
-    renote?: Note;
-    renoteId: Note['id'];
-    files: DriveFile[];
-    fileIds: DriveFile['id'][];
-    visibility: 'public' | 'home' | 'followers' | 'specified';
-    visibleUserIds?: User['id'][];
-    channel?: Channel;
-    channelId?: Channel['id'];
-    localOnly?: boolean;
-    myReaction?: string;
-    reactions: Record<string, number>;
-    renoteCount: number;
-    repliesCount: number;
-    clippedCount?: number;
-    poll?: {
-        expiresAt: DateString | null;
-        multiple: boolean;
-        choices: {
-            isVoted: boolean;
-            text: string;
-            votes: number;
-        }[];
-    };
-    emojis: {
-        name: string;
-        url: string;
-    }[];
-    uri?: string;
-    url?: string;
-    isHidden?: boolean;
-};
+type NotesTranslateRequest = operations['notes/translate']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type NoteFavorite = {
-    id: ID;
-    createdAt: DateString;
-    noteId: Note['id'];
-    note: Note;
-};
+type NotesTranslateResponse = operations['notes/translate']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type NoteReaction = {
-    id: ID;
-    createdAt: DateString;
-    user: UserLite;
-    type: string;
-};
+type NotesUnrenoteRequest = operations['notes/unrenote']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesUserListTimelineRequest = operations['notes/user-list-timeline']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type NotesUserListTimelineResponse = operations['notes/user-list-timeline']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
 export const noteVisibilities: readonly ["public", "home", "followers", "specified"];
 
 // @public (undocumented)
-type Notification_2 = {
-    id: ID;
-    createdAt: DateString;
-    isRead: boolean;
-} & ({
-    type: 'reaction';
-    reaction: string;
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'reply';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'renote';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'quote';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'mention';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'note';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'pollEnded';
-    user: User;
-    userId: User['id'];
-    note: Note;
-} | {
-    type: 'follow';
-    user: User;
-    userId: User['id'];
-} | {
-    type: 'followRequestAccepted';
-    user: User;
-    userId: User['id'];
-} | {
-    type: 'receiveFollowRequest';
-    user: User;
-    userId: User['id'];
-} | {
-    type: 'groupInvited';
-    invitation: UserGroup;
-    user: User;
-    userId: User['id'];
-} | {
-    type: 'achievementEarned';
-    achievement: string;
-} | {
-    type: 'app';
-    header?: string | null;
-    body: string;
-    icon?: string | null;
-} | {
-    type: 'test';
-});
+type Notification_2 = components['schemas']['Notification'];
 
 // @public (undocumented)
-export const notificationTypes: readonly ["note", "follow", "mention", "reply", "renote", "quote", "reaction", "pollVote", "pollEnded", "receiveFollowRequest", "followRequestAccepted", "groupInvited", "app", "achievementEarned"];
+type NotificationsCreateRequest = operations['notifications/create']['requestBody']['content']['application/json'];
 
 // @public (undocumented)
-type OriginType = 'combined' | 'local' | 'remote';
+export const notificationTypes: readonly ["note", "follow", "mention", "reply", "renote", "quote", "reaction", "pollVote", "pollEnded", "receiveFollowRequest", "followRequestAccepted", "groupInvited", "app", "achievementEarned"];
 
 // @public (undocumented)
-type Page = {
-    id: ID;
-    createdAt: DateString;
-    updatedAt: DateString;
-    userId: User['id'];
-    user: User;
-    content: Record<string, any>[];
-    variables: Record<string, any>[];
-    title: string;
-    name: string;
-    summary: string | null;
-    hideTitleWhenPinned: boolean;
-    alignCenter: boolean;
-    font: string;
-    script: string;
-    eyeCatchingImageId: DriveFile['id'] | null;
-    eyeCatchingImage: DriveFile | null;
-    attachedFiles: any;
-    likedCount: number;
-    isLiked?: boolean;
-};
+type Page = components['schemas']['Page'];
 
 // @public (undocumented)
 type PageEvent = {
@@ -2870,6 +2109,33 @@ type PageEvent = {
     user: User;
 };
 
+// @public (undocumented)
+type PagesCreateRequest = operations['pages/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type PagesCreateResponse = operations['pages/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type PagesDeleteRequest = operations['pages/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type PagesFeaturedResponse = operations['pages/featured']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type PagesLikeRequest = operations['pages/like']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type PagesShowRequest = operations['pages/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type PagesShowResponse = operations['pages/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type PagesUnlikeRequest = operations['pages/unlike']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type PagesUpdateRequest = operations['pages/update']['requestBody']['content']['application/json'];
+
 // @public (undocumented)
 function parse(acct: string): Acct;
 
@@ -2877,40 +2143,55 @@ function parse(acct: string): Acct;
 export const permissions: string[];
 
 // @public (undocumented)
-type ServerInfo = {
-    machine: string;
-    cpu: {
-        model: string;
-        cores: number;
-    };
-    mem: {
-        total: number;
-    };
-    fs: {
-        total: number;
-        used: number;
-    };
-};
+type PingResponse = operations['ping']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Signin = {
-    id: ID;
-    createdAt: DateString;
-    ip: string;
-    headers: Record<string, any>;
-    success: boolean;
-};
+type PinnedUsersResponse = operations['pinned-users']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type Stats = {
-    notesCount: number;
-    originalNotesCount: number;
-    usersCount: number;
-    originalUsersCount: number;
-    instances: number;
-    driveUsageLocal: number;
-    driveUsageRemote: number;
-};
+type PromoReadRequest = operations['promo/read']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type QueueCount = components['schemas']['QueueCount'];
+
+// @public (undocumented)
+type RenoteMuteCreateRequest = operations['renote-mute/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RenoteMuteDeleteRequest = operations['renote-mute/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RenoteMuteListRequest = operations['renote-mute/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RenoteMuteListResponse = operations['renote-mute/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type RenoteMuting = components['schemas']['RenoteMuting'];
+
+// @public (undocumented)
+type RequestResetPasswordRequest = operations['request-reset-password']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type ResetPasswordRequest = operations['reset-password']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RetentionResponse = operations['retention']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type RolesNotesRequest = operations['roles/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RolesNotesResponse = operations['roles/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type RolesShowRequest = operations['roles/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type RolesUsersRequest = operations['roles/users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type StatsResponse = operations['stats']['responses']['200']['content']['application/json'];
 
 // Warning: (ae-forgotten-export) The symbol "StreamEvents" needs to be exported by the entry point index.d.ts
 //
@@ -2951,114 +2232,224 @@ export class Stream extends EventEmitter<StreamEvents> {
     useChannel<C extends keyof Channels>(channel: C, params?: Channels[C]['params'], name?: string): ChannelConnection<Channels[C]>;
 }
 
+// Warning: (ae-forgotten-export) The symbol "SwitchCase" needs to be exported by the entry point index.d.ts
+// Warning: (ae-forgotten-export) The symbol "IsCaseMatched" needs to be exported by the entry point index.d.ts
+// Warning: (ae-forgotten-export) The symbol "GetCaseResult" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+type SwitchCaseResponseType<E extends keyof Endpoints, P extends Endpoints[E]['req']> = Endpoints[E]['res'] extends SwitchCase ? IsCaseMatched<E, P, 0> extends true ? GetCaseResult<E, P, 0> : IsCaseMatched<E, P, 1> extends true ? GetCaseResult<E, P, 1> : IsCaseMatched<E, P, 2> extends true ? GetCaseResult<E, P, 2> : IsCaseMatched<E, P, 3> extends true ? GetCaseResult<E, P, 3> : IsCaseMatched<E, P, 4> extends true ? GetCaseResult<E, P, 4> : IsCaseMatched<E, P, 5> extends true ? GetCaseResult<E, P, 5> : IsCaseMatched<E, P, 6> extends true ? GetCaseResult<E, P, 6> : IsCaseMatched<E, P, 7> extends true ? GetCaseResult<E, P, 7> : IsCaseMatched<E, P, 8> extends true ? GetCaseResult<E, P, 8> : IsCaseMatched<E, P, 9> extends true ? GetCaseResult<E, P, 9> : Endpoints[E]['res']['$switch']['$default'] : Endpoints[E]['res'];
+
+// @public (undocumented)
+type SwRegisterRequest = operations['sw/register']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type SwRegisterResponse = operations['sw/register']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type SwShowRegistrationRequest = operations['sw/show-registration']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type SwShowRegistrationResponse = operations['sw/show-registration']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type SwUnregisterRequest = operations['sw/unregister']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type SwUpdateRegistrationRequest = operations['sw/update-registration']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type SwUpdateRegistrationResponse = operations['sw/update-registration']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type TestRequest = operations['test']['requestBody']['content']['application/json'];
+
 // @public (undocumented)
 function toString_2(acct: Acct): string;
 
 // @public (undocumented)
-type User = UserLite | UserDetailed;
+type User = components['schemas']['User'];
 
 // @public (undocumented)
-type UserDetailed = UserLite & {
-    alsoKnownAs: string[];
-    bannerBlurhash: string | null;
-    bannerColor: string | null;
-    bannerUrl: string | null;
-    birthday: string | null;
-    createdAt: DateString;
-    description: string | null;
-    ffVisibility: 'public' | 'followers' | 'private';
-    fields: {
-        name: string;
-        value: string;
-    }[];
-    verifiedLinks: string[];
-    followersCount: number;
-    followingCount: number;
-    hasPendingFollowRequestFromYou: boolean;
-    hasPendingFollowRequestToYou: boolean;
-    isAdmin: boolean;
-    isBlocked: boolean;
-    isBlocking: boolean;
-    isBot: boolean;
-    isCat: boolean;
-    isFollowed: boolean;
-    isFollowing: boolean;
-    isLocked: boolean;
-    isModerator: boolean;
-    isMuted: boolean;
-    isSilenced: boolean;
-    isSuspended: boolean;
-    lang: string | null;
-    lastFetchedAt?: DateString;
-    location: string | null;
-    movedTo: string;
-    notesCount: number;
-    pinnedNoteIds: ID[];
-    pinnedNotes: Note[];
-    pinnedPage: Page | null;
-    pinnedPageId: string | null;
-    publicReactions: boolean;
-    securityKeys: boolean;
-    twoFactorEnabled: boolean;
-    updatedAt: DateString | null;
-    uri: string | null;
-    url: string | null;
-    notify: 'normal' | 'none';
-};
+type UserDetailed = components['schemas']['UserDetailed'];
 
 // @public (undocumented)
-type UserGroup = TODO_2;
+type UserDetailedNotMe = components['schemas']['UserDetailedNotMe'];
 
 // @public (undocumented)
-type UserList = {
-    id: ID;
-    createdAt: DateString;
-    name: string;
-    userIds: User['id'][];
-};
+type UserDetailedNotMeOnly = components['schemas']['UserDetailedNotMeOnly'];
 
 // @public (undocumented)
-type UserLite = {
-    id: ID;
-    username: string;
-    host: string | null;
-    name: string | null;
-    onlineStatus: 'online' | 'active' | 'offline' | 'unknown';
-    avatarUrl: string;
-    avatarBlurhash: string;
-    avatarDecorations: {
-        id: ID;
-        url: string;
-        angle?: number;
-        flipH?: boolean;
-    }[];
-    emojis: {
-        name: string;
-        url: string;
-    }[];
-    instance?: {
-        name: Instance['name'];
-        softwareName: Instance['softwareName'];
-        softwareVersion: Instance['softwareVersion'];
-        iconUrl: Instance['iconUrl'];
-        faviconUrl: Instance['faviconUrl'];
-        themeColor: Instance['themeColor'];
-    };
-    isCat?: boolean;
-    isBot?: boolean;
-};
+type UserList = components['schemas']['UserList'];
+
+// @public (undocumented)
+type UserLite = components['schemas']['UserLite'];
+
+// @public (undocumented)
+type UsernameAvailableRequest = operations['username/available']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsernameAvailableResponse = operations['username/available']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersAchievementsRequest = operations['users/achievements']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersClipsRequest = operations['users/clips']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersClipsResponse = operations['users/clips']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFeaturedNotesRequest = operations['users/featured-notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFeaturedNotesResponse = operations['users/featured-notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFlashsRequest = operations['users/flashs']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFlashsResponse = operations['users/flashs']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFollowersRequest = operations['users/followers']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFollowersResponse = operations['users/followers']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFollowingRequest = operations['users/following']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersFollowingResponse = operations['users/following']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersGalleryPostsRequest = operations['users/gallery/posts']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersGalleryPostsResponse = operations['users/gallery/posts']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersGetFrequentlyRepliedUsersRequest = operations['users/get-frequently-replied-users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersGetFrequentlyRepliedUsersResponse = operations['users/get-frequently-replied-users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsCreateFromPublicRequest = operations['users/lists/create-from-public']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsCreateFromPublicResponse = operations['users/lists/create-from-public']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsCreateRequest = operations['users/lists/create']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsCreateResponse = operations['users/lists/create']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsDeleteRequest = operations['users/lists/delete']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsFavoriteRequest = operations['users/lists/favorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsGetMembershipsRequest = operations['users/lists/get-memberships']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsListRequest = operations['users/lists/list']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsListResponse = operations['users/lists/list']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsPullRequest = operations['users/lists/pull']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsPushRequest = operations['users/lists/push']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsShowRequest = operations['users/lists/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsShowResponse = operations['users/lists/show']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsUnfavoriteRequest = operations['users/lists/unfavorite']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsUpdateMembershipRequest = operations['users/lists/update-membership']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsUpdateRequest = operations['users/lists/update']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersListsUpdateResponse = operations['users/lists/update']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersNotesRequest = operations['users/notes']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersNotesResponse = operations['users/notes']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersPagesRequest = operations['users/pages']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersPagesResponse = operations['users/pages']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersReactionsRequest = operations['users/reactions']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersReactionsResponse = operations['users/reactions']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersRecommendationRequest = operations['users/recommendation']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersRecommendationResponse = operations['users/recommendation']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersRelationRequest = operations['users/relation']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersRelationResponse = operations['users/relation']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersReportAbuseRequest = operations['users/report-abuse']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersRequest = operations['users']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersResponse = operations['users']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersSearchByUsernameAndHostRequest = operations['users/search-by-username-and-host']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersSearchByUsernameAndHostResponse = operations['users/search-by-username-and-host']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersSearchRequest = operations['users/search']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersSearchResponse = operations['users/search']['responses']['200']['content']['application/json'];
+
+// @public (undocumented)
+type UsersShowRequest = operations['users/show']['requestBody']['content']['application/json'];
+
+// @public (undocumented)
+type UsersShowResponse = operations['users/show']['responses']['200']['content']['application/json'];
 
 // @public (undocumented)
-type UserSorting = '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt';
+type UsersUpdateMemoRequest = operations['users/update-memo']['requestBody']['content']['application/json'];
 
 // Warnings were encountered during analysis:
 //
-// src/api.types.ts:16:32 - (ae-forgotten-export) The symbol "TODO" needs to be exported by the entry point index.d.ts
-// src/api.types.ts:20:25 - (ae-forgotten-export) The symbol "NoParams" needs to be exported by the entry point index.d.ts
-// src/api.types.ts:635:18 - (ae-forgotten-export) The symbol "ShowUserReq" needs to be exported by the entry point index.d.ts
-// src/entities.ts:117:2 - (ae-forgotten-export) The symbol "notificationTypes_2" needs to be exported by the entry point index.d.ts
-// src/entities.ts:628:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts
-// src/streaming.types.ts:33:4 - (ae-forgotten-export) The symbol "FIXME" needs to be exported by the entry point index.d.ts
+// src/entities.ts:24:2 - (ae-forgotten-export) The symbol "ModerationLogPayloads" needs to be exported by the entry point index.d.ts
+// src/streaming.types.ts:31:4 - (ae-forgotten-export) The symbol "FIXME" needs to be exported by the entry point index.d.ts
 
 // (No @packageDocumentation comment for this package)
 
diff --git a/packages/misskey-js/generator/.eslintrc.cjs b/packages/misskey-js/generator/.eslintrc.cjs
new file mode 100644
index 0000000000..6a8b31da9c
--- /dev/null
+++ b/packages/misskey-js/generator/.eslintrc.cjs
@@ -0,0 +1,9 @@
+module.exports = {
+	parserOptions: {
+		tsconfigRootDir: __dirname,
+		project: ['./tsconfig.json'],
+	},
+	extends: [
+		'../../shared/.eslintrc.js',
+	],
+};
diff --git a/packages/misskey-js/generator/.gitignore b/packages/misskey-js/generator/.gitignore
new file mode 100644
index 0000000000..1a11577de7
--- /dev/null
+++ b/packages/misskey-js/generator/.gitignore
@@ -0,0 +1 @@
+api.json
diff --git a/packages/misskey-js/generator/README.md b/packages/misskey-js/generator/README.md
new file mode 100644
index 0000000000..767ccfa185
--- /dev/null
+++ b/packages/misskey-js/generator/README.md
@@ -0,0 +1,19 @@
+## misskey-js向け型生成モジュール
+
+バックエンドが吐き出すOpenAPI準拠のapi.jsonからmisskey-jsで使用される型エイリアスを生成するためのモジュールです。
+このモジュールはmisskey-jsそのものにバンドルされることは想定しておらず、生成物をmisskey-jsのsrc配下にコピーして使用することを想定しています。
+
+## 使い方
+
+まず、Misskeyのバックエンドからapi.jsonを取得する必要があります。任意のMisskeyインスタンスの/api-docからダウンロードしても良いですし、
+backendモジュール配下で`pnpm generate-api-json`を実行しても良いでしょう。
+
+api.jsonを入手したら、このファイルがあるディレクトリに置いてください。
+
+その後、以下コマンドを実行します。
+
+```shell
+pnpm generate
+```
+
+上記を実行することで、`./built`ディレクトリ配下にtsファイルが生成されます。
diff --git a/packages/misskey-js/generator/package.json b/packages/misskey-js/generator/package.json
new file mode 100644
index 0000000000..e12520f043
--- /dev/null
+++ b/packages/misskey-js/generator/package.json
@@ -0,0 +1,24 @@
+{
+	"name": "misskey-js-type-generator",
+	"version": "0.0.0",
+	"description": "Misskey TypeGenerator",
+	"type": "module",
+	"scripts": {
+		"generate": "tsx src/generator.ts && eslint ./built/**/* --ext .ts --fix"
+	},
+	"devDependencies": {
+		"@apidevtools/swagger-parser": "10.1.0",
+		"@types/node": "20.9.1",
+		"@typescript-eslint/eslint-plugin": "6.11.0",
+		"@typescript-eslint/parser": "6.11.0",
+		"eslint": "8.53.0",
+		"typescript": "5.3.2",
+		"tsx": "4.4.0",
+		"ts-case-convert": "2.0.2",
+		"openapi-types": "12.1.3",
+		"openapi-typescript": "6.7.1"
+	},
+	"files": [
+		"built"
+	]
+}
diff --git a/packages/misskey-js/generator/src/generator.ts b/packages/misskey-js/generator/src/generator.ts
new file mode 100644
index 0000000000..7ed3ae120c
--- /dev/null
+++ b/packages/misskey-js/generator/src/generator.ts
@@ -0,0 +1,284 @@
+import { mkdir, writeFile } from 'fs/promises';
+import { OpenAPIV3 } from 'openapi-types';
+import { toPascal } from 'ts-case-convert';
+import SwaggerParser from '@apidevtools/swagger-parser';
+import openapiTS from 'openapi-typescript';
+
+function generateVersionHeaderComment(openApiDocs: OpenAPIV3.Document): string {
+	const contents = {
+		version: openApiDocs.info.version,
+		generatedAt: new Date().toISOString(),
+	};
+
+	const lines: string[] = [];
+	lines.push('/*');
+	for (const [key, value] of Object.entries(contents)) {
+		lines.push(` * ${key}: ${value}`);
+	}
+	lines.push(' */');
+
+	return lines.join('\n');
+}
+
+async function generateBaseTypes(
+	openApiDocs: OpenAPIV3.Document,
+	openApiJsonPath: string,
+	typeFileName: string,
+) {
+	const disabledLints = [
+		'@typescript-eslint/naming-convention',
+		'@typescript-eslint/no-explicit-any',
+	];
+
+	const lines: string[] = [];
+	for (const lint of disabledLints) {
+		lines.push(`/* eslint ${lint}: 0 */`);
+	}
+	lines.push('');
+
+	lines.push(generateVersionHeaderComment(openApiDocs));
+	lines.push('');
+
+	const generatedTypes = await openapiTS(openApiJsonPath, { exportType: true });
+	lines.push(generatedTypes);
+	lines.push('');
+
+	await writeFile(typeFileName, lines.join('\n'));
+}
+
+async function generateSchemaEntities(
+	openApiDocs: OpenAPIV3.Document,
+	typeFileName: string,
+	outputPath: string,
+) {
+	if (!openApiDocs.components?.schemas) {
+		return;
+	}
+
+	const schemas = openApiDocs.components.schemas;
+	const schemaNames = Object.keys(schemas);
+	const typeAliasLines: string[] = [];
+
+	typeAliasLines.push(generateVersionHeaderComment(openApiDocs));
+	typeAliasLines.push('');
+	typeAliasLines.push(`import { components } from '${toImportPath(typeFileName)}';`);
+	typeAliasLines.push(
+		...schemaNames.map(it => `export type ${it} = components['schemas']['${it}'];`),
+	);
+	typeAliasLines.push('');
+
+	await writeFile(outputPath, typeAliasLines.join('\n'));
+}
+
+async function generateEndpoints(
+	openApiDocs: OpenAPIV3.Document,
+	typeFileName: string,
+	entitiesOutputPath: string,
+	endpointOutputPath: string,
+) {
+	const endpoints: Endpoint[] = [];
+
+	// misskey-jsはPOST固定で送っているので、こちらも決め打ちする。別メソッドに対応することがあればこちらも直す必要あり
+	const paths = openApiDocs.paths;
+	const postPathItems = Object.keys(paths)
+		.map(it => paths[it]?.post)
+		.filter(filterUndefined);
+
+	for (const operation of postPathItems) {
+		// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+		const operationId = operation.operationId!;
+		const endpoint = new Endpoint(operationId);
+		endpoints.push(endpoint);
+
+		if (isRequestBodyObject(operation.requestBody)) {
+			const reqContent = operation.requestBody.content;
+			const supportMediaTypes = Object.keys(reqContent);
+			if (supportMediaTypes.length > 0) {
+				// いまのところ複数のメディアタイプをとるエンドポイントは無いので決め打ちする
+				endpoint.request = new OperationTypeAlias(
+					operationId,
+					supportMediaTypes[0],
+					OperationsAliasType.REQUEST,
+				);
+			}
+		}
+
+		if (isResponseObject(operation.responses['200']) && operation.responses['200'].content) {
+			const resContent = operation.responses['200'].content;
+			const supportMediaTypes = Object.keys(resContent);
+			if (supportMediaTypes.length > 0) {
+				// いまのところ複数のメディアタイプを返すエンドポイントは無いので決め打ちする
+				endpoint.response = new OperationTypeAlias(
+					operationId,
+					supportMediaTypes[0],
+					OperationsAliasType.RESPONSE,
+				);
+			}
+		}
+	}
+
+	const entitiesOutputLine: string[] = [];
+
+	entitiesOutputLine.push(generateVersionHeaderComment(openApiDocs));
+	entitiesOutputLine.push('');
+
+	entitiesOutputLine.push(`import { operations } from '${toImportPath(typeFileName)}';`);
+	entitiesOutputLine.push('');
+
+	entitiesOutputLine.push(new EmptyTypeAlias(OperationsAliasType.REQUEST).toLine());
+	entitiesOutputLine.push(new EmptyTypeAlias(OperationsAliasType.RESPONSE).toLine());
+	entitiesOutputLine.push('');
+
+	const entities = endpoints
+		.flatMap(it => [it.request, it.response].filter(i => i))
+		.filter(filterUndefined);
+	entitiesOutputLine.push(...entities.map(it => it.toLine()));
+	entitiesOutputLine.push('');
+
+	await writeFile(entitiesOutputPath, entitiesOutputLine.join('\n'));
+
+	const endpointOutputLine: string[] = [];
+
+	endpointOutputLine.push(generateVersionHeaderComment(openApiDocs));
+	endpointOutputLine.push('');
+
+	endpointOutputLine.push('import type {');
+	endpointOutputLine.push(
+		...[emptyRequest, emptyResponse, ...entities].map(it => '\t' + it.generateName() + ','),
+	);
+	endpointOutputLine.push(`} from '${toImportPath(entitiesOutputPath)}';`);
+	endpointOutputLine.push('');
+
+	endpointOutputLine.push('export type Endpoints = {');
+	endpointOutputLine.push(
+		...endpoints.map(it => '\t' + it.toLine()),
+	);
+	endpointOutputLine.push('}');
+	endpointOutputLine.push('');
+
+	await writeFile(endpointOutputPath, endpointOutputLine.join('\n'));
+}
+
+function isRequestBodyObject(value: unknown): value is OpenAPIV3.RequestBodyObject {
+	if (!value) {
+		return false;
+	}
+
+	const { content } = value as Record<keyof OpenAPIV3.RequestBodyObject, unknown>;
+	return content !== undefined;
+}
+
+function isResponseObject(value: unknown): value is OpenAPIV3.ResponseObject {
+	if (!value) {
+		return false;
+	}
+
+	const { description } = value as Record<keyof OpenAPIV3.ResponseObject, unknown>;
+	return description !== undefined;
+}
+
+function filterUndefined<T>(item: T): item is Exclude<T, undefined> {
+	return item !== undefined;
+}
+
+function toImportPath(fileName: string, fromPath = '/built/autogen', toPath = ''): string {
+	return fileName.replace(fromPath, toPath).replace('.ts', '.js');
+}
+
+enum OperationsAliasType {
+	REQUEST = 'Request',
+	RESPONSE = 'Response'
+}
+
+interface IOperationTypeAlias {
+	readonly type: OperationsAliasType
+
+	generateName(): string
+
+	toLine(): string
+}
+
+class OperationTypeAlias implements IOperationTypeAlias {
+	public readonly operationId: string;
+	public readonly mediaType: string;
+	public readonly type: OperationsAliasType;
+
+	constructor(
+		operationId: string,
+		mediaType: string,
+		type: OperationsAliasType,
+	) {
+		this.operationId = operationId;
+		this.mediaType = mediaType;
+		this.type = type;
+	}
+
+	generateName(): string {
+		const nameBase = this.operationId.replace(/\//g, '-');
+		return toPascal(nameBase + this.type);
+	}
+
+	toLine(): string {
+		const name = this.generateName();
+		return (this.type === OperationsAliasType.REQUEST)
+			? `export type ${name} = operations['${this.operationId}']['requestBody']['content']['${this.mediaType}'];`
+			: `export type ${name} = operations['${this.operationId}']['responses']['200']['content']['${this.mediaType}'];`;
+	}
+}
+
+class EmptyTypeAlias implements IOperationTypeAlias {
+	readonly type: OperationsAliasType;
+
+	constructor(type: OperationsAliasType) {
+		this.type = type;
+	}
+
+	generateName(): string {
+		return 'Empty' + this.type;
+	}
+
+	toLine(): string {
+		const name = this.generateName();
+		return `export type ${name} = Record<string, unknown> | undefined;`;
+	}
+}
+
+const emptyRequest = new EmptyTypeAlias(OperationsAliasType.REQUEST);
+const emptyResponse = new EmptyTypeAlias(OperationsAliasType.RESPONSE);
+
+class Endpoint {
+	public readonly operationId: string;
+	public request?: IOperationTypeAlias;
+	public response?: IOperationTypeAlias;
+
+	constructor(operationId: string) {
+		this.operationId = operationId;
+	}
+
+	toLine(): string {
+		const reqName = this.request?.generateName() ?? emptyRequest.generateName();
+		const resName = this.response?.generateName() ?? emptyResponse.generateName();
+
+		return `'${this.operationId}': { req: ${reqName}; res: ${resName} };`;
+	}
+}
+
+async function main() {
+	const generatePath = './built/autogen';
+	await mkdir(generatePath, { recursive: true });
+
+	const openApiJsonPath = './api.json';
+	const openApiDocs = await SwaggerParser.validate(openApiJsonPath) as OpenAPIV3.Document;
+
+	const typeFileName = './built/autogen/types.ts';
+	await generateBaseTypes(openApiDocs, openApiJsonPath, typeFileName);
+
+	const modelFileName = `${generatePath}/models.ts`;
+	await generateSchemaEntities(openApiDocs, typeFileName, modelFileName);
+
+	const entitiesFileName = `${generatePath}/entities.ts`;
+	const endpointFileName = `${generatePath}/endpoint.ts`;
+	await generateEndpoints(openApiDocs, typeFileName, entitiesFileName, endpointFileName);
+}
+
+main();
diff --git a/packages/misskey-js/generator/tsconfig.json b/packages/misskey-js/generator/tsconfig.json
new file mode 100644
index 0000000000..c814df612e
--- /dev/null
+++ b/packages/misskey-js/generator/tsconfig.json
@@ -0,0 +1,20 @@
+{
+	"$schema": "https://json.schemastore.org/tsconfig",
+	"compilerOptions": {
+		"target": "ESNext",
+		"module": "ESNext",
+		"moduleResolution": "nodenext",
+		"strict": true,
+		"strictFunctionTypes": true,
+		"strictNullChecks": true,
+		"esModuleInterop": true,
+		"lib": [
+			"esnext",
+		]
+	},
+	"include": [
+		"src/**/*.ts",
+		"built/**/*.ts"
+	],
+	"exclude": []
+}
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index 865d25146a..1d21923132 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -13,7 +13,8 @@
 		"typecheck": "tsc --noEmit",
 		"lint": "pnpm typecheck && pnpm eslint",
 		"jest": "jest --coverage --detectOpenHandles",
-		"test": "pnpm jest && pnpm tsd"
+		"test": "pnpm jest && pnpm tsd",
+		"update-autogen-code": "pnpm --filter misskey-js-type-generator generate && ncp generator/built/autogen src/autogen"
 	},
 	"repository": {
 		"type": "git",
@@ -32,7 +33,8 @@
 		"jest-websocket-mock": "2.5.0",
 		"mock-socket": "9.3.1",
 		"tsd": "0.29.0",
-		"typescript": "5.3.2"
+		"typescript": "5.3.2",
+		"ncp": "2.0.0"
 	},
 	"files": [
 		"built"
diff --git a/packages/misskey-js/src/api.ts b/packages/misskey-js/src/api.ts
index 9415e692e3..c2fa4f1790 100644
--- a/packages/misskey-js/src/api.ts
+++ b/packages/misskey-js/src/api.ts
@@ -1,4 +1,9 @@
-import type { Endpoints } from './api.types.js';
+import { SwitchCaseResponseType } from './api.types';
+import type { Endpoints } from './api.types';
+
+export {
+	SwitchCaseResponseType,
+} from './api.types';
 
 const MK_API_ERROR = Symbol();
 
@@ -15,25 +20,15 @@ export function isAPIError(reason: any): reason is APIError {
 }
 
 export type FetchLike = (input: string, init?: {
-		method?: string;
-		body?: string;
-		credentials?: RequestCredentials;
-		cache?: RequestCache;
-		headers: {[key in string]: string}
-	}) => Promise<{
-		status: number;
-		json(): Promise<any>;
-	}>;
-
-type IsNeverType<T> = [T] extends [never] ? true : false;
-
-type StrictExtract<Union, Cond> = Cond extends Union ? Union : never;
-
-type IsCaseMatched<E extends keyof Endpoints, P extends Endpoints[E]['req'], C extends number> =
-	IsNeverType<StrictExtract<Endpoints[E]['res']['$switch']['$cases'][C], [P, any]>> extends false ? true : false;
-
-type GetCaseResult<E extends keyof Endpoints, P extends Endpoints[E]['req'], C extends number> =
-	StrictExtract<Endpoints[E]['res']['$switch']['$cases'][C], [P, any]>[1];
+	method?: string;
+	body?: string;
+	credentials?: RequestCredentials;
+	cache?: RequestCache;
+	headers: { [key in string]: string }
+}) => Promise<{
+	status: number;
+	json(): Promise<any>;
+}>;
 
 export class APIClient {
 	public origin: string;
@@ -53,22 +48,11 @@ export class APIClient {
 	}
 
 	public request<E extends keyof Endpoints, P extends Endpoints[E]['req']>(
-		endpoint: E, params: P = {} as P, credential?: string | null | undefined,
-	): Promise<Endpoints[E]['res'] extends { $switch: { $cases: [any, any][]; $default: any; }; }
-		?
-			IsCaseMatched<E, P, 0> extends true ? GetCaseResult<E, P, 0> :
-			IsCaseMatched<E, P, 1> extends true ? GetCaseResult<E, P, 1> :
-			IsCaseMatched<E, P, 2> extends true ? GetCaseResult<E, P, 2> :
-			IsCaseMatched<E, P, 3> extends true ? GetCaseResult<E, P, 3> :
-			IsCaseMatched<E, P, 4> extends true ? GetCaseResult<E, P, 4> :
-			IsCaseMatched<E, P, 5> extends true ? GetCaseResult<E, P, 5> :
-			IsCaseMatched<E, P, 6> extends true ? GetCaseResult<E, P, 6> :
-			IsCaseMatched<E, P, 7> extends true ? GetCaseResult<E, P, 7> :
-			IsCaseMatched<E, P, 8> extends true ? GetCaseResult<E, P, 8> :
-			IsCaseMatched<E, P, 9> extends true ? GetCaseResult<E, P, 9> :
-			Endpoints[E]['res']['$switch']['$default']
-		: Endpoints[E]['res']> {
-		const promise = new Promise((resolve, reject) => {
+		endpoint: E,
+		params: P = {} as P,
+		credential?: string | null,
+	): Promise<SwitchCaseResponseType<E, P>> {
+		return new Promise((resolve, reject) => {
 			this.fetch(`${this.origin}/api/${endpoint}`, {
 				method: 'POST',
 				body: JSON.stringify({
@@ -83,10 +67,8 @@ export class APIClient {
 			}).then(async (res) => {
 				const body = res.status === 204 ? null : await res.json();
 
-				if (res.status === 200) {
+				if (res.status === 200 || res.status === 204) {
 					resolve(body);
-				} else if (res.status === 204) {
-					resolve(null);
 				} else {
 					reject({
 						[MK_API_ERROR]: true,
@@ -95,7 +77,5 @@ export class APIClient {
 				}
 			}).catch(reject);
 		});
-
-		return promise as any;
 	}
 }
diff --git a/packages/misskey-js/src/api.types.ts b/packages/misskey-js/src/api.types.ts
index ba333231e5..d97646b7cc 100644
--- a/packages/misskey-js/src/api.types.ts
+++ b/packages/misskey-js/src/api.types.ts
@@ -1,651 +1,60 @@
-import type {
-	Ad, Announcement, Antenna, App, AuthSession, Blocking, Channel, Clip, DateString, DetailedInstanceMetadata, DriveFile, DriveFolder, Following, FollowingFolloweePopulated, FollowingFollowerPopulated, FollowRequest, GalleryPost, Instance,
-	LiteInstanceMetadata,
-	MeDetailed,
-	Note, NoteFavorite, OriginType, Page, ServerInfo, Stats, User, UserDetailed, MeSignup, UserGroup, UserList, UserSorting, Notification, NoteReaction, Signin, MessagingMessage, Invite, InviteLimit, AdminInstanceMetadata,
-} from './entities.js';
-
-type TODO = Record<string, any> | null;
-
-type NoParams = Record<string, never>;
-
-type ShowUserReq = { username: string; host?: string; } | { userId: User['id']; };
-
-export type Endpoints = {
-	// admin
-	'admin/abuse-user-reports': { req: TODO; res: TODO; };
-	'admin/delete-all-files-of-a-user': { req: { userId: User['id']; }; res: null; };
-	'admin/unset-user-avatar': { req: { userId: User['id']; }; res: null; };
-	'admin/unset-user-banner': { req: { userId: User['id']; }; res: null; };
-	'admin/delete-logs': { req: NoParams; res: null; };
-	'admin/get-index-stats': { req: TODO; res: TODO; };
-	'admin/get-table-stats': { req: TODO; res: TODO; };
-	'admin/invite': { req: TODO; res: TODO; };
-	'admin/logs': { req: TODO; res: TODO; };
-	'admin/meta': { req: NoParams; res: AdminInstanceMetadata; };
-	'admin/reset-password': { req: TODO; res: TODO; };
-	'admin/resolve-abuse-user-report': { req: TODO; res: TODO; };
-	'admin/resync-chart': { req: TODO; res: TODO; };
-	'admin/send-email': { req: TODO; res: TODO; };
-	'admin/server-info': { req: TODO; res: TODO; };
-	'admin/show-moderation-logs': { req: TODO; res: TODO; };
-	'admin/show-user': { req: TODO; res: TODO; };
-	'admin/show-users': { req: TODO; res: TODO; };
-	'admin/silence-user': { req: TODO; res: TODO; };
-	'admin/suspend-user': { req: TODO; res: TODO; };
-	'admin/unsilence-user': { req: TODO; res: TODO; };
-	'admin/unsuspend-user': { req: TODO; res: TODO; };
-	'admin/update-meta': { req: TODO; res: TODO; };
-	'admin/vacuum': { req: TODO; res: TODO; };
-	'admin/accounts/create': { req: TODO; res: TODO; };
-	'admin/ad/create': { req: TODO; res: TODO; };
-	'admin/ad/delete': { req: { id: Ad['id']; }; res: null; };
-	'admin/ad/list': { req: TODO; res: TODO; };
-	'admin/ad/update': { req: TODO; res: TODO; };
-	'admin/announcements/create': { req: TODO; res: TODO; };
-	'admin/announcements/delete': { req: { id: Announcement['id'] }; res: null; };
-	'admin/announcements/list': { req: TODO; res: TODO; };
-	'admin/announcements/update': { req: TODO; res: TODO; };
-	'admin/drive/clean-remote-files': { req: TODO; res: TODO; };
-	'admin/drive/cleanup': { req: TODO; res: TODO; };
-	'admin/drive/files': { req: TODO; res: TODO; };
-	'admin/drive/show-file': { req: TODO; res: TODO; };
-	'admin/emoji/add': { req: TODO; res: TODO; };
-	'admin/emoji/copy': { req: TODO; res: TODO; };
-	'admin/emoji/list-remote': { req: TODO; res: TODO; };
-	'admin/emoji/list': { req: TODO; res: TODO; };
-	'admin/emoji/remove': { req: TODO; res: TODO; };
-	'admin/emoji/update': { req: TODO; res: TODO; };
-	'admin/federation/delete-all-files': { req: { host: string; }; res: null; };
-	'admin/federation/refresh-remote-instance-metadata': { req: TODO; res: TODO; };
-	'admin/federation/remove-all-following': { req: TODO; res: TODO; };
-	'admin/federation/update-instance': { req: TODO; res: TODO; };
-	'admin/invite/create': { req: TODO; res: TODO; };
-	'admin/invite/list': { req: TODO; res: TODO; };
-	'admin/moderators/add': { req: TODO; res: TODO; };
-	'admin/moderators/remove': { req: TODO; res: TODO; };
-	'admin/promo/create': { req: TODO; res: TODO; };
-	'admin/queue/clear': { req: TODO; res: TODO; };
-	'admin/queue/deliver-delayed': { req: TODO; res: TODO; };
-	'admin/queue/inbox-delayed': { req: TODO; res: TODO; };
-	'admin/queue/jobs': { req: TODO; res: TODO; };
-	'admin/queue/stats': { req: TODO; res: TODO; };
-	'admin/relays/add': { req: TODO; res: TODO; };
-	'admin/relays/list': { req: TODO; res: TODO; };
-	'admin/relays/remove': { req: TODO; res: TODO; };
-
-	// announcements
-	'announcements': { req: { limit?: number; withUnreads?: boolean; sinceId?: Announcement['id']; untilId?: Announcement['id']; }; res: Announcement[]; };
-
-	// antennas
-	'antennas/create': { req: TODO; res: Antenna; };
-	'antennas/delete': { req: { antennaId: Antenna['id']; }; res: null; };
-	'antennas/list': { req: NoParams; res: Antenna[]; };
-	'antennas/notes': { req: { antennaId: Antenna['id']; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; }; res: Note[]; };
-	'antennas/show': { req: { antennaId: Antenna['id']; }; res: Antenna; };
-	'antennas/update': { req: TODO; res: Antenna; };
-
-	// ap
-	'ap/get': { req: { uri: string; }; res: Record<string, any>; };
-	'ap/show': { req: { uri: string; }; res: {
-		type: 'Note';
-		object: Note;
-	} | {
-		type: 'User';
-		object: UserDetailed;
-	}; };
-
-	// app
-	'app/create': { req: TODO; res: App; };
-	'app/show': { req: { appId: App['id']; }; res: App; };
-
-	// auth
-	'auth/accept': { req: { token: string; }; res: null; };
-	'auth/session/generate': { req: { appSecret: string; }; res: { token: string; url: string; }; };
-	'auth/session/show': { req: { token: string; }; res: AuthSession; };
-	'auth/session/userkey': { req: { appSecret: string; token: string; }; res: { accessToken: string; user: User }; };
-
-	// blocking
-	'blocking/create': { req: { userId: User['id'] }; res: UserDetailed; };
-	'blocking/delete': { req: { userId: User['id'] }; res: UserDetailed; };
-	'blocking/list': { req: { limit?: number; sinceId?: Blocking['id']; untilId?: Blocking['id']; }; res: Blocking[]; };
-
-	// channels
-	'channels/create': { req: TODO; res: TODO; };
-	'channels/featured': { req: TODO; res: TODO; };
-	'channels/follow': { req: TODO; res: TODO; };
-	'channels/followed': { req: TODO; res: TODO; };
-	'channels/owned': { req: TODO; res: TODO; };
-	'channels/pin-note': { req: TODO; res: TODO; };
-	'channels/show': { req: TODO; res: TODO; };
-	'channels/timeline': { req: TODO; res: TODO; };
-	'channels/unfollow': { req: TODO; res: TODO; };
-	'channels/update': { req: TODO; res: TODO; };
-
-	// charts
-	'charts/active-users': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: {
-		local: {
-			users: number[];
-		};
-		remote: {
-			users: number[];
-		};
-	}; };
-	'charts/drive': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: {
-		local: {
-			decCount: number[];
-			decSize: number[];
-			incCount: number[];
-			incSize: number[];
-			totalCount: number[];
-			totalSize: number[];
-		};
-		remote: {
-			decCount: number[];
-			decSize: number[];
-			incCount: number[];
-			incSize: number[];
-			totalCount: number[];
-			totalSize: number[];
-		};
-	}; };
-	'charts/federation': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: {
-		instance: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-	}; };
-	'charts/hashtag': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: TODO; };
-	'charts/instance': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; host: string; }; res: {
-		drive: {
-			decFiles: number[];
-			decUsage: number[];
-			incFiles: number[];
-			incUsage: number[];
-			totalFiles: number[];
-			totalUsage: number[];
-		};
-		followers: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-		following: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-		notes: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-			diffs: {
-				normal: number[];
-				renote: number[];
-				reply: number[];
-			};
-		};
-		requests: {
-			failed: number[];
-			received: number[];
-			succeeded: number[];
-		};
-		users: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-	}; };
-	'charts/network': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: TODO; };
-	'charts/notes': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: {
-		local: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-			diffs: {
-				normal: number[];
-				renote: number[];
-				reply: number[];
-			};
-		};
-		remote: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-			diffs: {
-				normal: number[];
-				renote: number[];
-				reply: number[];
-			};
-		};
-	}; };
-	'charts/user/drive': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; userId: User['id']; }; res: {
-		decCount: number[];
-		decSize: number[];
-		incCount: number[];
-		incSize: number[];
-		totalCount: number[];
-		totalSize: number[];
-	}; };
-	'charts/user/following': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; userId: User['id']; }; res: TODO; };
-	'charts/user/notes': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; userId: User['id']; }; res: {
-		dec: number[];
-		inc: number[];
-		total: number[];
-		diffs: {
-			normal: number[];
-			renote: number[];
-			reply: number[];
-		};
-	}; };
-	'charts/user/reactions': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; userId: User['id']; }; res: TODO; };
-	'charts/users': { req: { span: 'day' | 'hour'; limit?: number; offset?: number | null; }; res: {
-		local: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-		remote: {
-			dec: number[];
-			inc: number[];
-			total: number[];
-		};
-	}; };
-
-	// clips
-	'clips/add-note': { req: TODO; res: TODO; };
-	'clips/create': { req: TODO; res: TODO; };
-	'clips/delete': { req: { clipId: Clip['id']; }; res: null; };
-	'clips/list': { req: TODO; res: TODO; };
-	'clips/notes': { req: TODO; res: TODO; };
-	'clips/show': { req: TODO; res: TODO; };
-	'clips/update': { req: TODO; res: TODO; };
-
-	// drive
-	'drive': { req: NoParams; res: { capacity: number; usage: number; }; };
-	'drive/files': { req: { folderId?: DriveFolder['id'] | null; type?: DriveFile['type'] | null; limit?: number; sinceId?: DriveFile['id']; untilId?: DriveFile['id']; }; res: DriveFile[]; };
-	'drive/files/attached-notes': { req: TODO; res: TODO; };
-	'drive/files/check-existence': { req: TODO; res: TODO; };
-	'drive/files/create': {
-		req: {
-			folderId?: string,
-			name?: string,
-			comment?: string,
-			isSentisive?: boolean,
-			force?: boolean,
-		};
-		res: DriveFile;
-	};
-	'drive/files/delete': { req: { fileId: DriveFile['id']; }; res: null; };
-	'drive/files/find-by-hash': { req: TODO; res: TODO; };
-	'drive/files/find': { req: { name: string; folderId?: DriveFolder['id'] | null; }; res: DriveFile[]; };
-	'drive/files/show': { req: { fileId?: DriveFile['id']; url?: string; }; res: DriveFile; };
-	'drive/files/update': { req: { fileId: DriveFile['id']; folderId?: DriveFolder['id'] | null; name?: string; isSensitive?: boolean; comment?: string | null; }; res: DriveFile; };
-	'drive/files/upload-from-url': { req: { url: string; folderId?: DriveFolder['id'] | null; isSensitive?: boolean; comment?: string | null; marker?: string | null; force?: boolean; }; res: null; };
-	'drive/folders': { req: { folderId?: DriveFolder['id'] | null; limit?: number; sinceId?: DriveFile['id']; untilId?: DriveFile['id']; }; res: DriveFolder[]; };
-	'drive/folders/create': { req: { name?: string; parentId?: DriveFolder['id'] | null; }; res: DriveFolder; };
-	'drive/folders/delete': { req: { folderId: DriveFolder['id']; }; res: null; };
-	'drive/folders/find': { req: { name: string; parentId?: DriveFolder['id'] | null; }; res: DriveFolder[]; };
-	'drive/folders/show': { req: { folderId: DriveFolder['id']; }; res: DriveFolder; };
-	'drive/folders/update': { req: { folderId: DriveFolder['id']; name?: string; parentId?: DriveFolder['id'] | null; }; res: DriveFolder; };
-	'drive/stream': { req: { type?: DriveFile['type'] | null; limit?: number; sinceId?: DriveFile['id']; untilId?: DriveFile['id']; }; res: DriveFile[]; };
-
-	// endpoint
-	'endpoint': { req: { endpoint: string; }; res: { params: { name: string; type: string; }[]; }; };
-
-	// endpoints
-	'endpoints': { req: NoParams; res: string[]; };
-
-	// federation
-	'federation/dns': { req: { host: string; }; res: {
-		a: string[];
-		aaaa: string[];
-		cname: string[];
-		txt: string[];
-	}; };
-	'federation/followers': { req: { host: string; limit?: number; sinceId?: Following['id']; untilId?: Following['id']; }; res: FollowingFolloweePopulated[]; };
-	'federation/following': { req: { host: string; limit?: number; sinceId?: Following['id']; untilId?: Following['id']; }; res: FollowingFolloweePopulated[]; };
-	'federation/instances': { req: {
-		host?: string | null;
-		blocked?: boolean | null;
-		notResponding?: boolean | null;
-		suspended?: boolean | null;
-		federating?: boolean | null;
-		subscribing?: boolean | null;
-		publishing?: boolean | null;
-		limit?: number;
-		offset?: number;
-		sort?: '+pubSub' | '-pubSub' | '+notes' | '-notes' | '+users' | '-users' | '+following' | '-following' | '+followers' | '-followers' | '+caughtAt' | '-caughtAt' | '+lastCommunicatedAt' | '-lastCommunicatedAt' | '+driveUsage' | '-driveUsage' | '+driveFiles' | '-driveFiles';
-	}; res: Instance[]; };
-	'federation/show-instance': { req: { host: string; }; res: Instance; };
-	'federation/update-remote-user': { req: { userId: User['id']; }; res: null; };
-	'federation/users': { req: { host: string; limit?: number; sinceId?: User['id']; untilId?: User['id']; }; res: UserDetailed[]; };
-
-	// following
-	'following/create': { req: {
-		userId: User['id'],
-		withReplies?: boolean,
-	}; res: User; };
-	'following/delete': { req: { userId: User['id'] }; res: User; };
-	'following/requests/accept': { req: { userId: User['id'] }; res: null; };
-	'following/requests/cancel': { req: { userId: User['id'] }; res: User; };
-	'following/requests/list': { req: NoParams; res: FollowRequest[]; };
-	'following/requests/reject': { req: { userId: User['id'] }; res: null; };
-
-	// gallery
-	'gallery/featured': { req: null; res: GalleryPost[]; };
-	'gallery/popular': { req: null; res: GalleryPost[]; };
-	'gallery/posts': { req: { limit?: number; sinceId?: GalleryPost['id']; untilId?: GalleryPost['id']; }; res: GalleryPost[]; };
-	'gallery/posts/create': { req: { title: GalleryPost['title']; description?: GalleryPost['description']; fileIds: GalleryPost['fileIds']; isSensitive?: GalleryPost['isSensitive'] }; res: GalleryPost; };
-	'gallery/posts/delete': { req: { postId: GalleryPost['id'] }; res: null; };
-	'gallery/posts/like': { req: { postId: GalleryPost['id'] }; res: null; };
-	'gallery/posts/show': { req: { postId: GalleryPost['id'] }; res: GalleryPost; };
-	'gallery/posts/unlike': { req: { postId: GalleryPost['id'] }; res: null; };
-	'gallery/posts/update': { req: { postId: GalleryPost['id']; title: GalleryPost['title']; description?: GalleryPost['description']; fileIds: GalleryPost['fileIds']; isSensitive?: GalleryPost['isSensitive'] }; res: GalleryPost; };
-
-	// games
-	'games/reversi/games': { req: TODO; res: TODO; };
-	'games/reversi/games/show': { req: TODO; res: TODO; };
-	'games/reversi/games/surrender': { req: TODO; res: TODO; };
-	'games/reversi/invitations': { req: TODO; res: TODO; };
-	'games/reversi/match': { req: TODO; res: TODO; };
-	'games/reversi/match/cancel': { req: TODO; res: TODO; };
-
-	// get-online-users-count
-	'get-online-users-count': { req: NoParams; res: { count: number; }; };
-
-	// hashtags
-	'hashtags/list': { req: TODO; res: TODO; };
-	'hashtags/search': { req: TODO; res: TODO; };
-	'hashtags/show': { req: TODO; res: TODO; };
-	'hashtags/trend': { req: TODO; res: TODO; };
-	'hashtags/users': { req: TODO; res: TODO; };
-
-	// i
-	'i': { req: NoParams; res: User; };
-	'i/apps': { req: TODO; res: TODO; };
-	'i/authorized-apps': { req: TODO; res: TODO; };
-	'i/change-password': { req: TODO; res: TODO; };
-	'i/delete-account': { req: { password: string; }; res: null; };
-	'i/export-blocking': { req: TODO; res: TODO; };
-	'i/export-following': { req: TODO; res: TODO; };
-	'i/export-mute': { req: TODO; res: TODO; };
-	'i/export-notes': { req: TODO; res: TODO; };
-	'i/export-user-lists': { req: TODO; res: TODO; };
-	'i/favorites': { req: { limit?: number; sinceId?: NoteFavorite['id']; untilId?: NoteFavorite['id']; }; res: NoteFavorite[]; };
-	'i/gallery/likes': { req: TODO; res: TODO; };
-	'i/gallery/posts': { req: TODO; res: TODO; };
-	'i/import-following': { req: TODO; res: TODO; };
-	'i/import-user-lists': { req: TODO; res: TODO; };
-	'i/move': { req: TODO; res: TODO; };
-	'i/notifications': { req: {
-		limit?: number;
-		sinceId?: Notification['id'];
-		untilId?: Notification['id'];
-		following?: boolean;
-		markAsRead?: boolean;
-		includeTypes?: Notification['type'][];
-		excludeTypes?: Notification['type'][];
-	}; res: Notification[]; };
-	'i/page-likes': { req: TODO; res: TODO; };
-	'i/pages': { req: TODO; res: TODO; };
-	'i/pin': { req: { noteId: Note['id']; }; res: MeDetailed; };
-	'i/read-all-messaging-messages': { req: TODO; res: TODO; };
-	'i/read-all-unread-notes': { req: TODO; res: TODO; };
-	'i/read-announcement': { req: TODO; res: TODO; };
-	'i/regenerate-token': { req: { password: string; }; res: null; };
-	'i/registry/get-all': { req: { scope?: string[]; }; res: Record<string, any>; };
-	'i/registry/get-detail': { req: { key: string; scope?: string[]; }; res: { updatedAt: DateString; value: any; }; };
-	'i/registry/get': { req: { key: string; scope?: string[]; }; res: any; };
-	'i/registry/keys-with-type': { req: { scope?: string[]; }; res: Record<string, 'null' | 'array' | 'number' | 'string' | 'boolean' | 'object'>; };
-	'i/registry/keys': { req: { scope?: string[]; }; res: string[]; };
-	'i/registry/remove': { req: { key: string; scope?: string[]; }; res: null; };
-	'i/registry/set': { req: { key: string; value: any; scope?: string[]; }; res: null; };
-	'i/revoke-token': { req: TODO; res: TODO; };
-	'i/signin-history': { req: { limit?: number; sinceId?: Signin['id']; untilId?: Signin['id']; }; res: Signin[]; };
-	'i/unpin': { req: { noteId: Note['id']; }; res: MeDetailed; };
-	'i/update-email': { req: {
-		password: string;
-		email?: string | null;
-	}; res: MeDetailed; };
-	'i/update': { req: {
-		name?: string | null;
-		description?: string | null;
-		lang?: string | null;
-		location?: string | null;
-		birthday?: string | null;
-		avatarId?: DriveFile['id'] | null;
-		bannerId?: DriveFile['id'] | null;
-		fields?: {
-			name: string;
-			value: string;
-		}[];
-		isLocked?: boolean;
-		isExplorable?: boolean;
-		hideOnlineStatus?: boolean;
-		carefulBot?: boolean;
-		autoAcceptFollowed?: boolean;
-		noCrawle?: boolean;
-		isBot?: boolean;
-		isCat?: boolean;
-		injectFeaturedNote?: boolean;
-		receiveAnnouncementEmail?: boolean;
-		alwaysMarkNsfw?: boolean;
-		mutedWords?: (string[] | string)[];
-		hardMutedWords?: (string[] | string)[];
-		notificationRecieveConfig?: any;
-		emailNotificationTypes?: string[];
-		alsoKnownAs?: string[];
-	}; res: MeDetailed; };
-	'i/user-group-invites': { req: TODO; res: TODO; };
-	'i/2fa/done': { req: TODO; res: TODO; };
-	'i/2fa/key-done': { req: TODO; res: TODO; };
-	'i/2fa/password-less': { req: TODO; res: TODO; };
-	'i/2fa/register-key': { req: TODO; res: TODO; };
-	'i/2fa/register': { req: TODO; res: TODO; };
-	'i/2fa/remove-key': { req: TODO; res: TODO; };
-	'i/2fa/unregister': { req: TODO; res: TODO; };
-
-	// invite
-	'invite/create': { req: NoParams; res: Invite; };
-	'invite/delete': { req: { inviteId: Invite['id']; }; res: null; };
-	'invite/list': { req: { limit?: number; sinceId?: Invite['id']; untilId?: Invite['id'] }; res: Invite[]; };
-	'invite/limit': { req: NoParams; res: InviteLimit; };
-
-	// messaging
-	'messaging/history': { req: { limit?: number; group?: boolean; }; res: MessagingMessage[]; };
-	'messaging/messages': { req: { userId?: User['id']; groupId?: UserGroup['id']; limit?: number; sinceId?: MessagingMessage['id']; untilId?: MessagingMessage['id']; markAsRead?: boolean; }; res: MessagingMessage[]; };
-	'messaging/messages/create': { req: { userId?: User['id']; groupId?: UserGroup['id']; text?: string; fileId?: DriveFile['id']; }; res: MessagingMessage; };
-	'messaging/messages/delete': { req: { messageId: MessagingMessage['id']; }; res: null; };
-	'messaging/messages/read': { req: { messageId: MessagingMessage['id']; }; res: null; };
-
-	// meta
-	'meta': { req: { detail?: boolean; }; res: {
-		$switch: {
-			$cases: [[
-				{ detail: true; },
-				DetailedInstanceMetadata,
-			], [
-				{ detail: false; },
-				LiteInstanceMetadata,
-			], [
-				{ detail: boolean; },
-				LiteInstanceMetadata | DetailedInstanceMetadata,
-			]];
-			$default: LiteInstanceMetadata;
-		};
-	}; };
-
-	// miauth
-	'miauth/gen-token': { req: TODO; res: TODO; };
-
-	// mute
-	'mute/create': { req: TODO; res: TODO; };
-	'mute/delete': { req: { userId: User['id'] }; res: null; };
-	'mute/list': { req: TODO; res: TODO; };
-
-	// my
-	'my/apps': { req: TODO; res: TODO; };
-
-	// notes
-	'notes': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; }; res: Note[]; };
-	'notes/children': { req: { noteId: Note['id']; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; }; res: Note[]; };
-	'notes/clips': { req: TODO; res: TODO; };
-	'notes/conversation': { req: TODO; res: TODO; };
-	'notes/create': { req: {
-		visibility?: 'public' | 'home' | 'followers' | 'specified',
-		visibleUserIds?: User['id'][];
-		text?: null | string;
-		cw?: null | string;
-		viaMobile?: boolean;
-		localOnly?: boolean;
-		fileIds?: DriveFile['id'][];
-		replyId?: null | Note['id'];
-		renoteId?: null | Note['id'];
-		channelId?: null | Channel['id'];
-		poll?: null | {
-			choices: string[];
-			multiple?: boolean;
-			expiresAt?: null | number;
-			expiredAfter?: null | number;
-		};
-	}; res: { createdNote: Note }; };
-	'notes/delete': { req: { noteId: Note['id']; }; res: null; };
-	'notes/favorites/create': { req: { noteId: Note['id']; }; res: null; };
-	'notes/favorites/delete': { req: { noteId: Note['id']; }; res: null; };
-	'notes/featured': { req: TODO; res: Note[]; };
-	'notes/global-timeline': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'notes/hybrid-timeline': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'notes/local-timeline': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'notes/mentions': { req: { following?: boolean; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; }; res: Note[]; };
-	'notes/polls/recommendation': { req: TODO; res: TODO; };
-	'notes/polls/vote': { req: { noteId: Note['id']; choice: number; }; res: null; };
-	'notes/reactions': { req: { noteId: Note['id']; type?: string | null; limit?: number; }; res: NoteReaction[]; };
-	'notes/reactions/create': { req: { noteId: Note['id']; reaction: string; }; res: null; };
-	'notes/reactions/delete': { req: { noteId: Note['id']; }; res: null; };
-	'notes/renotes': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; noteId: Note['id']; }; res: Note[]; };
-	'notes/replies': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; noteId: Note['id']; }; res: Note[]; };
-	'notes/search-by-tag': { req: TODO; res: TODO; };
-	'notes/search': { req: TODO; res: TODO; };
-	'notes/show': { req: { noteId: Note['id']; }; res: Note; };
-	'notes/state': { req: TODO; res: TODO; };
-	'notes/timeline': { req: { limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'notes/unrenote': { req: { noteId: Note['id']; }; res: null; };
-	'notes/user-list-timeline': { req: { listId: UserList['id']; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'notes/watching/create': { req: TODO; res: TODO; };
-	'notes/watching/delete': { req: { noteId: Note['id']; }; res: null; };
-
-	// notifications
-	'notifications/create': { req: { body: string; header?: string | null; icon?: string | null; }; res: null; };
-	'notifications/test-notification': { req: NoParams; res: null; };
-	'notifications/mark-all-as-read': { req: NoParams; res: null; };
-
-	// page-push
-	'page-push': { req: { pageId: Page['id']; event: string; var?: any; }; res: null; };
-
-	// pages
-	'pages/create': { req: TODO; res: Page; };
-	'pages/delete': { req: { pageId: Page['id']; }; res: null; };
-	'pages/featured': { req: NoParams; res: Page[]; };
-	'pages/like': { req: { pageId: Page['id']; }; res: null; };
-	'pages/show': { req: { pageId?: Page['id']; name?: string; username?: string; }; res: Page; };
-	'pages/unlike': { req: { pageId: Page['id']; }; res: null; };
-	'pages/update': { req: TODO; res: null; };
-
-	// ping
-	'ping': { req: NoParams; res: { pong: number; }; };
-
-	// pinned-users
-	'pinned-users': { req: TODO; res: TODO; };
-
-	// promo
-	'promo/read': { req: TODO; res: TODO; };
-
-	// request-reset-password
-	'request-reset-password': { req: { username: string; email: string; }; res: null; };
-
-	// reset-password
-	'reset-password': { req: { token: string; password: string; }; res: null; };
-
-	// room
-	'room/show': { req: TODO; res: TODO; };
-	'room/update': { req: TODO; res: TODO; };
-
-	// signup
-	'signup': {
-		req: {
-			username: string;
-			password: string;
-			host?: string;
-			invitationCode?: string;
-			emailAddress?: string;
-			'hcaptcha-response'?: string;
-			'g-recaptcha-response'?: string;
-			'turnstile-response'?: string;
-		};
-		res: MeSignup | null;
-	};
-
-	// stats
-	'stats': { req: NoParams; res: Stats; };
-
-	// server-info
-	'server-info': { req: NoParams; res: ServerInfo; };
-
-	// sw
-	'sw/register': { req: TODO; res: TODO; };
-
-	// username
-	'username/available': { req: { username: string; }; res: { available: boolean; }; };
-
-	// users
-	'users': { req: { limit?: number; offset?: number; sort?: UserSorting; origin?: OriginType; }; res: User[]; };
-	'users/clips': { req: TODO; res: TODO; };
-	'users/followers': { req: { userId?: User['id']; username?: User['username']; host?: User['host'] | null; limit?: number; sinceId?: Following['id']; untilId?: Following['id']; }; res: FollowingFollowerPopulated[]; };
-	'users/following': { req: { userId?: User['id']; username?: User['username']; host?: User['host'] | null; limit?: number; sinceId?: Following['id']; untilId?: Following['id']; }; res: FollowingFolloweePopulated[]; };
-	'users/gallery/posts': { req: TODO; res: TODO; };
-	'users/get-frequently-replied-users': { req: TODO; res: TODO; };
-	'users/groups/create': { req: TODO; res: TODO; };
-	'users/groups/delete': { req: { groupId: UserGroup['id'] }; res: null; };
-	'users/groups/invitations/accept': { req: TODO; res: TODO; };
-	'users/groups/invitations/reject': { req: TODO; res: TODO; };
-	'users/groups/invite': { req: TODO; res: TODO; };
-	'users/groups/joined': { req: TODO; res: TODO; };
-	'users/groups/owned': { req: TODO; res: TODO; };
-	'users/groups/pull': { req: TODO; res: TODO; };
-	'users/groups/show': { req: TODO; res: TODO; };
-	'users/groups/transfer': { req: TODO; res: TODO; };
-	'users/groups/update': { req: TODO; res: TODO; };
-	'users/lists/create': { req: { name: string; }; res: UserList; };
-	'users/lists/delete': { req: { listId: UserList['id']; }; res: null; };
-	'users/lists/list': { req: NoParams; res: UserList[]; };
-	'users/lists/pull': { req: { listId: UserList['id']; userId: User['id']; }; res: null; };
-	'users/lists/push': { req: { listId: UserList['id']; userId: User['id']; }; res: null; };
-	'users/lists/show': { req: { listId: UserList['id']; }; res: UserList; };
-	'users/lists/update': { req: { listId: UserList['id']; name: string; }; res: UserList; };
-	'users/notes': { req: { userId: User['id']; limit?: number; sinceId?: Note['id']; untilId?: Note['id']; sinceDate?: number; untilDate?: number; }; res: Note[]; };
-	'users/pages': { req: TODO; res: TODO; };
-	'users/flashs': { req: TODO; res: TODO; };
-	'users/recommendation': { req: TODO; res: TODO; };
-	'users/relation': { req: TODO; res: TODO; };
-	'users/report-abuse': { req: TODO; res: TODO; };
-	'users/search-by-username-and-host': { req: TODO; res: TODO; };
-	'users/search': { req: TODO; res: TODO; };
-	'users/show': { req: ShowUserReq | { userIds: User['id'][]; }; res: {
-		$switch: {
-			$cases: [[
-				{ userIds: User['id'][]; },
-				UserDetailed[],
-			]];
-			$default: UserDetailed;
-		};
-	}; };
-
-	// fetching external data
-	'fetch-rss': { req: { url: string; }; res: TODO; };
-	'fetch-external-resources': {
-		req: { url: string; hash: string; };
-		res: { type: string; data: string; };
+import { Endpoints as Gen } from './autogen/endpoint';
+import { UserDetailed } from './autogen/models';
+import { UsersShowRequest } from './autogen/entities';
+
+type Overwrite<T, U extends { [Key in keyof T]?: unknown }> = Omit<
+	T,
+	keyof U
+> & U;
+
+type SwitchCase = {
+	$switch: {
+		$cases: [any, any][],
+		$default: any;
 	};
 };
+
+type IsNeverType<T> = [T] extends [never] ? true : false;
+type StrictExtract<Union, Cond> = Cond extends Union ? Union : never;
+
+type IsCaseMatched<E extends keyof Endpoints, P extends Endpoints[E]['req'], C extends number> =
+	Endpoints[E]['res'] extends SwitchCase
+		? IsNeverType<StrictExtract<Endpoints[E]['res']['$switch']['$cases'][C], [P, any]>> extends false ? true : false
+		: false
+
+type GetCaseResult<E extends keyof Endpoints, P extends Endpoints[E]['req'], C extends number> =
+	Endpoints[E]['res'] extends SwitchCase
+		? StrictExtract<Endpoints[E]['res']['$switch']['$cases'][C], [P, any]>[1]
+		: never
+
+export type SwitchCaseResponseType<E extends keyof Endpoints, P extends Endpoints[E]['req']> = Endpoints[E]['res'] extends SwitchCase
+	? IsCaseMatched<E, P, 0> extends true ? GetCaseResult<E, P, 0> :
+		IsCaseMatched<E, P, 1> extends true ? GetCaseResult<E, P, 1> :
+			IsCaseMatched<E, P, 2> extends true ? GetCaseResult<E, P, 2> :
+				IsCaseMatched<E, P, 3> extends true ? GetCaseResult<E, P, 3> :
+					IsCaseMatched<E, P, 4> extends true ? GetCaseResult<E, P, 4> :
+						IsCaseMatched<E, P, 5> extends true ? GetCaseResult<E, P, 5> :
+							IsCaseMatched<E, P, 6> extends true ? GetCaseResult<E, P, 6> :
+								IsCaseMatched<E, P, 7> extends true ? GetCaseResult<E, P, 7> :
+									IsCaseMatched<E, P, 8> extends true ? GetCaseResult<E, P, 8> :
+										IsCaseMatched<E, P, 9> extends true ? GetCaseResult<E, P, 9> :
+											Endpoints[E]['res']['$switch']['$default'] : Endpoints[E]['res'];
+
+export type Endpoints = Overwrite<
+	Gen,
+	{
+		'users/show': {
+			req: UsersShowRequest;
+			res: {
+				$switch: {
+					$cases: [[
+						{
+							userIds?: string[];
+						}, UserDetailed[],
+					]];
+					$default: UserDetailed;
+				};
+			};
+		}
+	}
+>
diff --git a/packages/misskey-js/src/autogen/endpoint.ts b/packages/misskey-js/src/autogen/endpoint.ts
new file mode 100644
index 0000000000..64739a65d0
--- /dev/null
+++ b/packages/misskey-js/src/autogen/endpoint.ts
@@ -0,0 +1,802 @@
+/*
+ * version: 2023.11.1
+ * generatedAt: 2023-11-27T02:24:45.113Z
+ */
+
+import type {
+	EmptyRequest,
+	EmptyResponse,
+	AdminMetaResponse,
+	AdminAbuseUserReportsRequest,
+	AdminAbuseUserReportsResponse,
+	AdminAccountsCreateRequest,
+	AdminAccountsCreateResponse,
+	AdminAccountsDeleteRequest,
+	AdminAccountsFindByEmailRequest,
+	AdminAdCreateRequest,
+	AdminAdDeleteRequest,
+	AdminAdListRequest,
+	AdminAdUpdateRequest,
+	AdminAnnouncementsCreateRequest,
+	AdminAnnouncementsCreateResponse,
+	AdminAnnouncementsDeleteRequest,
+	AdminAnnouncementsListRequest,
+	AdminAnnouncementsListResponse,
+	AdminAnnouncementsUpdateRequest,
+	AdminAvatarDecorationsCreateRequest,
+	AdminAvatarDecorationsDeleteRequest,
+	AdminAvatarDecorationsListRequest,
+	AdminAvatarDecorationsListResponse,
+	AdminAvatarDecorationsUpdateRequest,
+	AdminDeleteAllFilesOfAUserRequest,
+	AdminUnsetUserAvatarRequest,
+	AdminUnsetUserBannerRequest,
+	AdminDriveFilesRequest,
+	AdminDriveFilesResponse,
+	AdminDriveShowFileRequest,
+	AdminDriveShowFileResponse,
+	AdminEmojiAddAliasesBulkRequest,
+	AdminEmojiAddRequest,
+	AdminEmojiCopyRequest,
+	AdminEmojiCopyResponse,
+	AdminEmojiDeleteBulkRequest,
+	AdminEmojiDeleteRequest,
+	AdminEmojiListRemoteRequest,
+	AdminEmojiListRemoteResponse,
+	AdminEmojiListRequest,
+	AdminEmojiListResponse,
+	AdminEmojiRemoveAliasesBulkRequest,
+	AdminEmojiSetAliasesBulkRequest,
+	AdminEmojiSetCategoryBulkRequest,
+	AdminEmojiSetLicenseBulkRequest,
+	AdminEmojiUpdateRequest,
+	AdminFederationDeleteAllFilesRequest,
+	AdminFederationRefreshRemoteInstanceMetadataRequest,
+	AdminFederationRemoveAllFollowingRequest,
+	AdminFederationUpdateInstanceRequest,
+	AdminGetTableStatsResponse,
+	AdminGetUserIpsRequest,
+	AdminInviteCreateRequest,
+	AdminInviteCreateResponse,
+	AdminInviteListRequest,
+	AdminInviteListResponse,
+	AdminPromoCreateRequest,
+	AdminQueueDeliverDelayedResponse,
+	AdminQueueInboxDelayedResponse,
+	AdminQueuePromoteRequest,
+	AdminQueueStatsResponse,
+	AdminRelaysAddRequest,
+	AdminRelaysAddResponse,
+	AdminRelaysListResponse,
+	AdminRelaysRemoveRequest,
+	AdminResetPasswordRequest,
+	AdminResetPasswordResponse,
+	AdminResolveAbuseUserReportRequest,
+	AdminSendEmailRequest,
+	AdminServerInfoResponse,
+	AdminShowModerationLogsRequest,
+	AdminShowModerationLogsResponse,
+	AdminShowUserRequest,
+	AdminShowUserResponse,
+	AdminShowUsersRequest,
+	AdminShowUsersResponse,
+	AdminSuspendUserRequest,
+	AdminUnsuspendUserRequest,
+	AdminUpdateMetaRequest,
+	AdminDeleteAccountRequest,
+	AdminDeleteAccountResponse,
+	AdminUpdateUserNoteRequest,
+	AdminRolesCreateRequest,
+	AdminRolesDeleteRequest,
+	AdminRolesShowRequest,
+	AdminRolesUpdateRequest,
+	AdminRolesAssignRequest,
+	AdminRolesUnassignRequest,
+	AdminRolesUpdateDefaultPoliciesRequest,
+	AdminRolesUsersRequest,
+	AnnouncementsRequest,
+	AnnouncementsResponse,
+	AntennasCreateRequest,
+	AntennasCreateResponse,
+	AntennasDeleteRequest,
+	AntennasListResponse,
+	AntennasNotesRequest,
+	AntennasNotesResponse,
+	AntennasShowRequest,
+	AntennasShowResponse,
+	AntennasUpdateRequest,
+	AntennasUpdateResponse,
+	ApGetRequest,
+	ApGetResponse,
+	ApShowRequest,
+	ApShowResponse,
+	AppCreateRequest,
+	AppCreateResponse,
+	AppShowRequest,
+	AppShowResponse,
+	AuthSessionGenerateRequest,
+	AuthSessionGenerateResponse,
+	AuthSessionShowRequest,
+	AuthSessionShowResponse,
+	AuthSessionUserkeyRequest,
+	AuthSessionUserkeyResponse,
+	BlockingCreateRequest,
+	BlockingCreateResponse,
+	BlockingDeleteRequest,
+	BlockingDeleteResponse,
+	BlockingListRequest,
+	BlockingListResponse,
+	ChannelsCreateRequest,
+	ChannelsCreateResponse,
+	ChannelsFeaturedResponse,
+	ChannelsFollowRequest,
+	ChannelsFollowedRequest,
+	ChannelsFollowedResponse,
+	ChannelsOwnedRequest,
+	ChannelsOwnedResponse,
+	ChannelsShowRequest,
+	ChannelsShowResponse,
+	ChannelsTimelineRequest,
+	ChannelsTimelineResponse,
+	ChannelsUnfollowRequest,
+	ChannelsUpdateRequest,
+	ChannelsUpdateResponse,
+	ChannelsFavoriteRequest,
+	ChannelsUnfavoriteRequest,
+	ChannelsMyFavoritesResponse,
+	ChannelsSearchRequest,
+	ChannelsSearchResponse,
+	ChartsActiveUsersRequest,
+	ChartsActiveUsersResponse,
+	ChartsApRequestRequest,
+	ChartsApRequestResponse,
+	ChartsDriveRequest,
+	ChartsDriveResponse,
+	ChartsFederationRequest,
+	ChartsFederationResponse,
+	ChartsInstanceRequest,
+	ChartsInstanceResponse,
+	ChartsNotesRequest,
+	ChartsNotesResponse,
+	ChartsUserDriveRequest,
+	ChartsUserDriveResponse,
+	ChartsUserFollowingRequest,
+	ChartsUserFollowingResponse,
+	ChartsUserNotesRequest,
+	ChartsUserNotesResponse,
+	ChartsUserPvRequest,
+	ChartsUserPvResponse,
+	ChartsUserReactionsRequest,
+	ChartsUserReactionsResponse,
+	ChartsUsersRequest,
+	ChartsUsersResponse,
+	ClipsAddNoteRequest,
+	ClipsRemoveNoteRequest,
+	ClipsCreateRequest,
+	ClipsCreateResponse,
+	ClipsDeleteRequest,
+	ClipsListResponse,
+	ClipsNotesRequest,
+	ClipsNotesResponse,
+	ClipsShowRequest,
+	ClipsShowResponse,
+	ClipsUpdateRequest,
+	ClipsUpdateResponse,
+	ClipsFavoriteRequest,
+	ClipsUnfavoriteRequest,
+	ClipsMyFavoritesResponse,
+	DriveResponse,
+	DriveFilesRequest,
+	DriveFilesResponse,
+	DriveFilesAttachedNotesRequest,
+	DriveFilesAttachedNotesResponse,
+	DriveFilesCheckExistenceRequest,
+	DriveFilesCheckExistenceResponse,
+	DriveFilesCreateRequest,
+	DriveFilesCreateResponse,
+	DriveFilesDeleteRequest,
+	DriveFilesFindByHashRequest,
+	DriveFilesFindByHashResponse,
+	DriveFilesFindRequest,
+	DriveFilesFindResponse,
+	DriveFilesShowRequest,
+	DriveFilesShowResponse,
+	DriveFilesUpdateRequest,
+	DriveFilesUpdateResponse,
+	DriveFilesUploadFromUrlRequest,
+	DriveFoldersRequest,
+	DriveFoldersResponse,
+	DriveFoldersCreateRequest,
+	DriveFoldersCreateResponse,
+	DriveFoldersDeleteRequest,
+	DriveFoldersFindRequest,
+	DriveFoldersFindResponse,
+	DriveFoldersShowRequest,
+	DriveFoldersShowResponse,
+	DriveFoldersUpdateRequest,
+	DriveFoldersUpdateResponse,
+	DriveStreamRequest,
+	DriveStreamResponse,
+	EmailAddressAvailableRequest,
+	EmailAddressAvailableResponse,
+	EndpointRequest,
+	EndpointsResponse,
+	FederationFollowersRequest,
+	FederationFollowersResponse,
+	FederationFollowingRequest,
+	FederationFollowingResponse,
+	FederationInstancesRequest,
+	FederationInstancesResponse,
+	FederationShowInstanceRequest,
+	FederationShowInstanceResponse,
+	FederationUpdateRemoteUserRequest,
+	FederationUsersRequest,
+	FederationUsersResponse,
+	FederationStatsRequest,
+	FollowingCreateRequest,
+	FollowingCreateResponse,
+	FollowingDeleteRequest,
+	FollowingDeleteResponse,
+	FollowingUpdateRequest,
+	FollowingUpdateResponse,
+	FollowingUpdateAllRequest,
+	FollowingInvalidateRequest,
+	FollowingInvalidateResponse,
+	FollowingRequestsAcceptRequest,
+	FollowingRequestsCancelRequest,
+	FollowingRequestsCancelResponse,
+	FollowingRequestsListRequest,
+	FollowingRequestsListResponse,
+	FollowingRequestsRejectRequest,
+	GalleryFeaturedRequest,
+	GalleryFeaturedResponse,
+	GalleryPopularResponse,
+	GalleryPostsRequest,
+	GalleryPostsResponse,
+	GalleryPostsCreateRequest,
+	GalleryPostsCreateResponse,
+	GalleryPostsDeleteRequest,
+	GalleryPostsLikeRequest,
+	GalleryPostsShowRequest,
+	GalleryPostsShowResponse,
+	GalleryPostsUnlikeRequest,
+	GalleryPostsUpdateRequest,
+	GalleryPostsUpdateResponse,
+	GetAvatarDecorationsResponse,
+	HashtagsListRequest,
+	HashtagsListResponse,
+	HashtagsSearchRequest,
+	HashtagsSearchResponse,
+	HashtagsShowRequest,
+	HashtagsShowResponse,
+	HashtagsTrendResponse,
+	HashtagsUsersRequest,
+	HashtagsUsersResponse,
+	IResponse,
+	IClaimAchievementRequest,
+	IFavoritesRequest,
+	IFavoritesResponse,
+	IGalleryLikesRequest,
+	IGalleryLikesResponse,
+	IGalleryPostsRequest,
+	IGalleryPostsResponse,
+	INotificationsRequest,
+	INotificationsResponse,
+	INotificationsGroupedRequest,
+	INotificationsGroupedResponse,
+	IPageLikesRequest,
+	IPageLikesResponse,
+	IPagesRequest,
+	IPagesResponse,
+	IPinRequest,
+	IPinResponse,
+	IReadAnnouncementRequest,
+	IRegistryGetAllRequest,
+	IRegistryGetDetailRequest,
+	IRegistryGetRequest,
+	IRegistryKeysWithTypeRequest,
+	IRegistryKeysRequest,
+	IRegistryRemoveRequest,
+	IRegistrySetRequest,
+	IUnpinRequest,
+	IUnpinResponse,
+	IUpdateRequest,
+	IUpdateResponse,
+	IWebhooksCreateRequest,
+	IWebhooksShowRequest,
+	IWebhooksUpdateRequest,
+	IWebhooksDeleteRequest,
+	InviteCreateResponse,
+	InviteDeleteRequest,
+	InviteListRequest,
+	InviteListResponse,
+	InviteLimitResponse,
+	MetaRequest,
+	MetaResponse,
+	EmojisResponse,
+	EmojiRequest,
+	EmojiResponse,
+	MuteCreateRequest,
+	MuteDeleteRequest,
+	MuteListRequest,
+	MuteListResponse,
+	RenoteMuteCreateRequest,
+	RenoteMuteDeleteRequest,
+	RenoteMuteListRequest,
+	RenoteMuteListResponse,
+	MyAppsRequest,
+	MyAppsResponse,
+	NotesRequest,
+	NotesResponse,
+	NotesChildrenRequest,
+	NotesChildrenResponse,
+	NotesClipsRequest,
+	NotesClipsResponse,
+	NotesConversationRequest,
+	NotesConversationResponse,
+	NotesCreateRequest,
+	NotesCreateResponse,
+	NotesDeleteRequest,
+	NotesFavoritesCreateRequest,
+	NotesFavoritesDeleteRequest,
+	NotesFeaturedRequest,
+	NotesFeaturedResponse,
+	NotesGlobalTimelineRequest,
+	NotesGlobalTimelineResponse,
+	NotesHybridTimelineRequest,
+	NotesHybridTimelineResponse,
+	NotesLocalTimelineRequest,
+	NotesLocalTimelineResponse,
+	NotesMentionsRequest,
+	NotesMentionsResponse,
+	NotesPollsRecommendationRequest,
+	NotesPollsRecommendationResponse,
+	NotesPollsVoteRequest,
+	NotesReactionsRequest,
+	NotesReactionsResponse,
+	NotesReactionsCreateRequest,
+	NotesReactionsDeleteRequest,
+	NotesRenotesRequest,
+	NotesRenotesResponse,
+	NotesRepliesRequest,
+	NotesRepliesResponse,
+	NotesSearchByTagRequest,
+	NotesSearchByTagResponse,
+	NotesSearchRequest,
+	NotesSearchResponse,
+	NotesShowRequest,
+	NotesShowResponse,
+	NotesStateRequest,
+	NotesStateResponse,
+	NotesThreadMutingCreateRequest,
+	NotesThreadMutingDeleteRequest,
+	NotesTimelineRequest,
+	NotesTimelineResponse,
+	NotesTranslateRequest,
+	NotesTranslateResponse,
+	NotesUnrenoteRequest,
+	NotesUserListTimelineRequest,
+	NotesUserListTimelineResponse,
+	NotificationsCreateRequest,
+	PagesCreateRequest,
+	PagesCreateResponse,
+	PagesDeleteRequest,
+	PagesFeaturedResponse,
+	PagesLikeRequest,
+	PagesShowRequest,
+	PagesShowResponse,
+	PagesUnlikeRequest,
+	PagesUpdateRequest,
+	FlashCreateRequest,
+	FlashDeleteRequest,
+	FlashFeaturedResponse,
+	FlashLikeRequest,
+	FlashShowRequest,
+	FlashShowResponse,
+	FlashUnlikeRequest,
+	FlashUpdateRequest,
+	FlashMyRequest,
+	FlashMyResponse,
+	FlashMyLikesRequest,
+	FlashMyLikesResponse,
+	PingResponse,
+	PinnedUsersResponse,
+	PromoReadRequest,
+	RolesShowRequest,
+	RolesUsersRequest,
+	RolesNotesRequest,
+	RolesNotesResponse,
+	RequestResetPasswordRequest,
+	ResetPasswordRequest,
+	StatsResponse,
+	SwShowRegistrationRequest,
+	SwShowRegistrationResponse,
+	SwUpdateRegistrationRequest,
+	SwUpdateRegistrationResponse,
+	SwRegisterRequest,
+	SwRegisterResponse,
+	SwUnregisterRequest,
+	TestRequest,
+	UsernameAvailableRequest,
+	UsernameAvailableResponse,
+	UsersRequest,
+	UsersResponse,
+	UsersClipsRequest,
+	UsersClipsResponse,
+	UsersFollowersRequest,
+	UsersFollowersResponse,
+	UsersFollowingRequest,
+	UsersFollowingResponse,
+	UsersGalleryPostsRequest,
+	UsersGalleryPostsResponse,
+	UsersGetFrequentlyRepliedUsersRequest,
+	UsersGetFrequentlyRepliedUsersResponse,
+	UsersFeaturedNotesRequest,
+	UsersFeaturedNotesResponse,
+	UsersListsCreateRequest,
+	UsersListsCreateResponse,
+	UsersListsDeleteRequest,
+	UsersListsListRequest,
+	UsersListsListResponse,
+	UsersListsPullRequest,
+	UsersListsPushRequest,
+	UsersListsShowRequest,
+	UsersListsShowResponse,
+	UsersListsFavoriteRequest,
+	UsersListsUnfavoriteRequest,
+	UsersListsUpdateRequest,
+	UsersListsUpdateResponse,
+	UsersListsCreateFromPublicRequest,
+	UsersListsCreateFromPublicResponse,
+	UsersListsUpdateMembershipRequest,
+	UsersListsGetMembershipsRequest,
+	UsersNotesRequest,
+	UsersNotesResponse,
+	UsersPagesRequest,
+	UsersPagesResponse,
+	UsersFlashsRequest,
+	UsersFlashsResponse,
+	UsersReactionsRequest,
+	UsersReactionsResponse,
+	UsersRecommendationRequest,
+	UsersRecommendationResponse,
+	UsersRelationRequest,
+	UsersRelationResponse,
+	UsersReportAbuseRequest,
+	UsersSearchByUsernameAndHostRequest,
+	UsersSearchByUsernameAndHostResponse,
+	UsersSearchRequest,
+	UsersSearchResponse,
+	UsersShowRequest,
+	UsersShowResponse,
+	UsersAchievementsRequest,
+	UsersUpdateMemoRequest,
+	FetchRssRequest,
+	FetchExternalResourcesRequest,
+	RetentionResponse,
+} from './entities.js';
+
+export type Endpoints = {
+	'admin/meta': { req: EmptyRequest; res: AdminMetaResponse };
+	'admin/abuse-user-reports': { req: AdminAbuseUserReportsRequest; res: AdminAbuseUserReportsResponse };
+	'admin/accounts/create': { req: AdminAccountsCreateRequest; res: AdminAccountsCreateResponse };
+	'admin/accounts/delete': { req: AdminAccountsDeleteRequest; res: EmptyResponse };
+	'admin/accounts/find-by-email': { req: AdminAccountsFindByEmailRequest; res: EmptyResponse };
+	'admin/ad/create': { req: AdminAdCreateRequest; res: EmptyResponse };
+	'admin/ad/delete': { req: AdminAdDeleteRequest; res: EmptyResponse };
+	'admin/ad/list': { req: AdminAdListRequest; res: EmptyResponse };
+	'admin/ad/update': { req: AdminAdUpdateRequest; res: EmptyResponse };
+	'admin/announcements/create': { req: AdminAnnouncementsCreateRequest; res: AdminAnnouncementsCreateResponse };
+	'admin/announcements/delete': { req: AdminAnnouncementsDeleteRequest; res: EmptyResponse };
+	'admin/announcements/list': { req: AdminAnnouncementsListRequest; res: AdminAnnouncementsListResponse };
+	'admin/announcements/update': { req: AdminAnnouncementsUpdateRequest; res: EmptyResponse };
+	'admin/avatar-decorations/create': { req: AdminAvatarDecorationsCreateRequest; res: EmptyResponse };
+	'admin/avatar-decorations/delete': { req: AdminAvatarDecorationsDeleteRequest; res: EmptyResponse };
+	'admin/avatar-decorations/list': { req: AdminAvatarDecorationsListRequest; res: AdminAvatarDecorationsListResponse };
+	'admin/avatar-decorations/update': { req: AdminAvatarDecorationsUpdateRequest; res: EmptyResponse };
+	'admin/delete-all-files-of-a-user': { req: AdminDeleteAllFilesOfAUserRequest; res: EmptyResponse };
+	'admin/unset-user-avatar': { req: AdminUnsetUserAvatarRequest; res: EmptyResponse };
+	'admin/unset-user-banner': { req: AdminUnsetUserBannerRequest; res: EmptyResponse };
+	'admin/drive/clean-remote-files': { req: EmptyRequest; res: EmptyResponse };
+	'admin/drive/cleanup': { req: EmptyRequest; res: EmptyResponse };
+	'admin/drive/files': { req: AdminDriveFilesRequest; res: AdminDriveFilesResponse };
+	'admin/drive/show-file': { req: AdminDriveShowFileRequest; res: AdminDriveShowFileResponse };
+	'admin/emoji/add-aliases-bulk': { req: AdminEmojiAddAliasesBulkRequest; res: EmptyResponse };
+	'admin/emoji/add': { req: AdminEmojiAddRequest; res: EmptyResponse };
+	'admin/emoji/copy': { req: AdminEmojiCopyRequest; res: AdminEmojiCopyResponse };
+	'admin/emoji/delete-bulk': { req: AdminEmojiDeleteBulkRequest; res: EmptyResponse };
+	'admin/emoji/delete': { req: AdminEmojiDeleteRequest; res: EmptyResponse };
+	'admin/emoji/list-remote': { req: AdminEmojiListRemoteRequest; res: AdminEmojiListRemoteResponse };
+	'admin/emoji/list': { req: AdminEmojiListRequest; res: AdminEmojiListResponse };
+	'admin/emoji/remove-aliases-bulk': { req: AdminEmojiRemoveAliasesBulkRequest; res: EmptyResponse };
+	'admin/emoji/set-aliases-bulk': { req: AdminEmojiSetAliasesBulkRequest; res: EmptyResponse };
+	'admin/emoji/set-category-bulk': { req: AdminEmojiSetCategoryBulkRequest; res: EmptyResponse };
+	'admin/emoji/set-license-bulk': { req: AdminEmojiSetLicenseBulkRequest; res: EmptyResponse };
+	'admin/emoji/update': { req: AdminEmojiUpdateRequest; res: EmptyResponse };
+	'admin/federation/delete-all-files': { req: AdminFederationDeleteAllFilesRequest; res: EmptyResponse };
+	'admin/federation/refresh-remote-instance-metadata': { req: AdminFederationRefreshRemoteInstanceMetadataRequest; res: EmptyResponse };
+	'admin/federation/remove-all-following': { req: AdminFederationRemoveAllFollowingRequest; res: EmptyResponse };
+	'admin/federation/update-instance': { req: AdminFederationUpdateInstanceRequest; res: EmptyResponse };
+	'admin/get-index-stats': { req: EmptyRequest; res: EmptyResponse };
+	'admin/get-table-stats': { req: EmptyRequest; res: AdminGetTableStatsResponse };
+	'admin/get-user-ips': { req: AdminGetUserIpsRequest; res: EmptyResponse };
+	'admin/invite/create': { req: AdminInviteCreateRequest; res: AdminInviteCreateResponse };
+	'admin/invite/list': { req: AdminInviteListRequest; res: AdminInviteListResponse };
+	'admin/promo/create': { req: AdminPromoCreateRequest; res: EmptyResponse };
+	'admin/queue/clear': { req: EmptyRequest; res: EmptyResponse };
+	'admin/queue/deliver-delayed': { req: EmptyRequest; res: AdminQueueDeliverDelayedResponse };
+	'admin/queue/inbox-delayed': { req: EmptyRequest; res: AdminQueueInboxDelayedResponse };
+	'admin/queue/promote': { req: AdminQueuePromoteRequest; res: EmptyResponse };
+	'admin/queue/stats': { req: EmptyRequest; res: AdminQueueStatsResponse };
+	'admin/relays/add': { req: AdminRelaysAddRequest; res: AdminRelaysAddResponse };
+	'admin/relays/list': { req: EmptyRequest; res: AdminRelaysListResponse };
+	'admin/relays/remove': { req: AdminRelaysRemoveRequest; res: EmptyResponse };
+	'admin/reset-password': { req: AdminResetPasswordRequest; res: AdminResetPasswordResponse };
+	'admin/resolve-abuse-user-report': { req: AdminResolveAbuseUserReportRequest; res: EmptyResponse };
+	'admin/send-email': { req: AdminSendEmailRequest; res: EmptyResponse };
+	'admin/server-info': { req: EmptyRequest; res: AdminServerInfoResponse };
+	'admin/show-moderation-logs': { req: AdminShowModerationLogsRequest; res: AdminShowModerationLogsResponse };
+	'admin/show-user': { req: AdminShowUserRequest; res: AdminShowUserResponse };
+	'admin/show-users': { req: AdminShowUsersRequest; res: AdminShowUsersResponse };
+	'admin/suspend-user': { req: AdminSuspendUserRequest; res: EmptyResponse };
+	'admin/unsuspend-user': { req: AdminUnsuspendUserRequest; res: EmptyResponse };
+	'admin/update-meta': { req: AdminUpdateMetaRequest; res: EmptyResponse };
+	'admin/delete-account': { req: AdminDeleteAccountRequest; res: AdminDeleteAccountResponse };
+	'admin/update-user-note': { req: AdminUpdateUserNoteRequest; res: EmptyResponse };
+	'admin/roles/create': { req: AdminRolesCreateRequest; res: EmptyResponse };
+	'admin/roles/delete': { req: AdminRolesDeleteRequest; res: EmptyResponse };
+	'admin/roles/list': { req: EmptyRequest; res: EmptyResponse };
+	'admin/roles/show': { req: AdminRolesShowRequest; res: EmptyResponse };
+	'admin/roles/update': { req: AdminRolesUpdateRequest; res: EmptyResponse };
+	'admin/roles/assign': { req: AdminRolesAssignRequest; res: EmptyResponse };
+	'admin/roles/unassign': { req: AdminRolesUnassignRequest; res: EmptyResponse };
+	'admin/roles/update-default-policies': { req: AdminRolesUpdateDefaultPoliciesRequest; res: EmptyResponse };
+	'admin/roles/users': { req: AdminRolesUsersRequest; res: EmptyResponse };
+	'announcements': { req: AnnouncementsRequest; res: AnnouncementsResponse };
+	'antennas/create': { req: AntennasCreateRequest; res: AntennasCreateResponse };
+	'antennas/delete': { req: AntennasDeleteRequest; res: EmptyResponse };
+	'antennas/list': { req: EmptyRequest; res: AntennasListResponse };
+	'antennas/notes': { req: AntennasNotesRequest; res: AntennasNotesResponse };
+	'antennas/show': { req: AntennasShowRequest; res: AntennasShowResponse };
+	'antennas/update': { req: AntennasUpdateRequest; res: AntennasUpdateResponse };
+	'ap/get': { req: ApGetRequest; res: ApGetResponse };
+	'ap/show': { req: ApShowRequest; res: ApShowResponse };
+	'app/create': { req: AppCreateRequest; res: AppCreateResponse };
+	'app/show': { req: AppShowRequest; res: AppShowResponse };
+	'auth/session/generate': { req: AuthSessionGenerateRequest; res: AuthSessionGenerateResponse };
+	'auth/session/show': { req: AuthSessionShowRequest; res: AuthSessionShowResponse };
+	'auth/session/userkey': { req: AuthSessionUserkeyRequest; res: AuthSessionUserkeyResponse };
+	'blocking/create': { req: BlockingCreateRequest; res: BlockingCreateResponse };
+	'blocking/delete': { req: BlockingDeleteRequest; res: BlockingDeleteResponse };
+	'blocking/list': { req: BlockingListRequest; res: BlockingListResponse };
+	'channels/create': { req: ChannelsCreateRequest; res: ChannelsCreateResponse };
+	'channels/featured': { req: EmptyRequest; res: ChannelsFeaturedResponse };
+	'channels/follow': { req: ChannelsFollowRequest; res: EmptyResponse };
+	'channels/followed': { req: ChannelsFollowedRequest; res: ChannelsFollowedResponse };
+	'channels/owned': { req: ChannelsOwnedRequest; res: ChannelsOwnedResponse };
+	'channels/show': { req: ChannelsShowRequest; res: ChannelsShowResponse };
+	'channels/timeline': { req: ChannelsTimelineRequest; res: ChannelsTimelineResponse };
+	'channels/unfollow': { req: ChannelsUnfollowRequest; res: EmptyResponse };
+	'channels/update': { req: ChannelsUpdateRequest; res: ChannelsUpdateResponse };
+	'channels/favorite': { req: ChannelsFavoriteRequest; res: EmptyResponse };
+	'channels/unfavorite': { req: ChannelsUnfavoriteRequest; res: EmptyResponse };
+	'channels/my-favorites': { req: EmptyRequest; res: ChannelsMyFavoritesResponse };
+	'channels/search': { req: ChannelsSearchRequest; res: ChannelsSearchResponse };
+	'charts/active-users': { req: ChartsActiveUsersRequest; res: ChartsActiveUsersResponse };
+	'charts/ap-request': { req: ChartsApRequestRequest; res: ChartsApRequestResponse };
+	'charts/drive': { req: ChartsDriveRequest; res: ChartsDriveResponse };
+	'charts/federation': { req: ChartsFederationRequest; res: ChartsFederationResponse };
+	'charts/instance': { req: ChartsInstanceRequest; res: ChartsInstanceResponse };
+	'charts/notes': { req: ChartsNotesRequest; res: ChartsNotesResponse };
+	'charts/user/drive': { req: ChartsUserDriveRequest; res: ChartsUserDriveResponse };
+	'charts/user/following': { req: ChartsUserFollowingRequest; res: ChartsUserFollowingResponse };
+	'charts/user/notes': { req: ChartsUserNotesRequest; res: ChartsUserNotesResponse };
+	'charts/user/pv': { req: ChartsUserPvRequest; res: ChartsUserPvResponse };
+	'charts/user/reactions': { req: ChartsUserReactionsRequest; res: ChartsUserReactionsResponse };
+	'charts/users': { req: ChartsUsersRequest; res: ChartsUsersResponse };
+	'clips/add-note': { req: ClipsAddNoteRequest; res: EmptyResponse };
+	'clips/remove-note': { req: ClipsRemoveNoteRequest; res: EmptyResponse };
+	'clips/create': { req: ClipsCreateRequest; res: ClipsCreateResponse };
+	'clips/delete': { req: ClipsDeleteRequest; res: EmptyResponse };
+	'clips/list': { req: EmptyRequest; res: ClipsListResponse };
+	'clips/notes': { req: ClipsNotesRequest; res: ClipsNotesResponse };
+	'clips/show': { req: ClipsShowRequest; res: ClipsShowResponse };
+	'clips/update': { req: ClipsUpdateRequest; res: ClipsUpdateResponse };
+	'clips/favorite': { req: ClipsFavoriteRequest; res: EmptyResponse };
+	'clips/unfavorite': { req: ClipsUnfavoriteRequest; res: EmptyResponse };
+	'clips/my-favorites': { req: EmptyRequest; res: ClipsMyFavoritesResponse };
+	'drive': { req: EmptyRequest; res: DriveResponse };
+	'drive/files': { req: DriveFilesRequest; res: DriveFilesResponse };
+	'drive/files/attached-notes': { req: DriveFilesAttachedNotesRequest; res: DriveFilesAttachedNotesResponse };
+	'drive/files/check-existence': { req: DriveFilesCheckExistenceRequest; res: DriveFilesCheckExistenceResponse };
+	'drive/files/create': { req: DriveFilesCreateRequest; res: DriveFilesCreateResponse };
+	'drive/files/delete': { req: DriveFilesDeleteRequest; res: EmptyResponse };
+	'drive/files/find-by-hash': { req: DriveFilesFindByHashRequest; res: DriveFilesFindByHashResponse };
+	'drive/files/find': { req: DriveFilesFindRequest; res: DriveFilesFindResponse };
+	'drive/files/show': { req: DriveFilesShowRequest; res: DriveFilesShowResponse };
+	'drive/files/update': { req: DriveFilesUpdateRequest; res: DriveFilesUpdateResponse };
+	'drive/files/upload-from-url': { req: DriveFilesUploadFromUrlRequest; res: EmptyResponse };
+	'drive/folders': { req: DriveFoldersRequest; res: DriveFoldersResponse };
+	'drive/folders/create': { req: DriveFoldersCreateRequest; res: DriveFoldersCreateResponse };
+	'drive/folders/delete': { req: DriveFoldersDeleteRequest; res: EmptyResponse };
+	'drive/folders/find': { req: DriveFoldersFindRequest; res: DriveFoldersFindResponse };
+	'drive/folders/show': { req: DriveFoldersShowRequest; res: DriveFoldersShowResponse };
+	'drive/folders/update': { req: DriveFoldersUpdateRequest; res: DriveFoldersUpdateResponse };
+	'drive/stream': { req: DriveStreamRequest; res: DriveStreamResponse };
+	'email-address/available': { req: EmailAddressAvailableRequest; res: EmailAddressAvailableResponse };
+	'endpoint': { req: EndpointRequest; res: EmptyResponse };
+	'endpoints': { req: EmptyRequest; res: EndpointsResponse };
+	'federation/followers': { req: FederationFollowersRequest; res: FederationFollowersResponse };
+	'federation/following': { req: FederationFollowingRequest; res: FederationFollowingResponse };
+	'federation/instances': { req: FederationInstancesRequest; res: FederationInstancesResponse };
+	'federation/show-instance': { req: FederationShowInstanceRequest; res: FederationShowInstanceResponse };
+	'federation/update-remote-user': { req: FederationUpdateRemoteUserRequest; res: EmptyResponse };
+	'federation/users': { req: FederationUsersRequest; res: FederationUsersResponse };
+	'federation/stats': { req: FederationStatsRequest; res: EmptyResponse };
+	'following/create': { req: FollowingCreateRequest; res: FollowingCreateResponse };
+	'following/delete': { req: FollowingDeleteRequest; res: FollowingDeleteResponse };
+	'following/update': { req: FollowingUpdateRequest; res: FollowingUpdateResponse };
+	'following/update-all': { req: FollowingUpdateAllRequest; res: EmptyResponse };
+	'following/invalidate': { req: FollowingInvalidateRequest; res: FollowingInvalidateResponse };
+	'following/requests/accept': { req: FollowingRequestsAcceptRequest; res: EmptyResponse };
+	'following/requests/cancel': { req: FollowingRequestsCancelRequest; res: FollowingRequestsCancelResponse };
+	'following/requests/list': { req: FollowingRequestsListRequest; res: FollowingRequestsListResponse };
+	'following/requests/reject': { req: FollowingRequestsRejectRequest; res: EmptyResponse };
+	'gallery/featured': { req: GalleryFeaturedRequest; res: GalleryFeaturedResponse };
+	'gallery/popular': { req: EmptyRequest; res: GalleryPopularResponse };
+	'gallery/posts': { req: GalleryPostsRequest; res: GalleryPostsResponse };
+	'gallery/posts/create': { req: GalleryPostsCreateRequest; res: GalleryPostsCreateResponse };
+	'gallery/posts/delete': { req: GalleryPostsDeleteRequest; res: EmptyResponse };
+	'gallery/posts/like': { req: GalleryPostsLikeRequest; res: EmptyResponse };
+	'gallery/posts/show': { req: GalleryPostsShowRequest; res: GalleryPostsShowResponse };
+	'gallery/posts/unlike': { req: GalleryPostsUnlikeRequest; res: EmptyResponse };
+	'gallery/posts/update': { req: GalleryPostsUpdateRequest; res: GalleryPostsUpdateResponse };
+	'get-online-users-count': { req: EmptyRequest; res: EmptyResponse };
+	'get-avatar-decorations': { req: EmptyRequest; res: GetAvatarDecorationsResponse };
+	'hashtags/list': { req: HashtagsListRequest; res: HashtagsListResponse };
+	'hashtags/search': { req: HashtagsSearchRequest; res: HashtagsSearchResponse };
+	'hashtags/show': { req: HashtagsShowRequest; res: HashtagsShowResponse };
+	'hashtags/trend': { req: EmptyRequest; res: HashtagsTrendResponse };
+	'hashtags/users': { req: HashtagsUsersRequest; res: HashtagsUsersResponse };
+	'i': { req: EmptyRequest; res: IResponse };
+	'i/claim-achievement': { req: IClaimAchievementRequest; res: EmptyResponse };
+	'i/favorites': { req: IFavoritesRequest; res: IFavoritesResponse };
+	'i/gallery/likes': { req: IGalleryLikesRequest; res: IGalleryLikesResponse };
+	'i/gallery/posts': { req: IGalleryPostsRequest; res: IGalleryPostsResponse };
+	'i/notifications': { req: INotificationsRequest; res: INotificationsResponse };
+	'i/notifications-grouped': { req: INotificationsGroupedRequest; res: INotificationsGroupedResponse };
+	'i/page-likes': { req: IPageLikesRequest; res: IPageLikesResponse };
+	'i/pages': { req: IPagesRequest; res: IPagesResponse };
+	'i/pin': { req: IPinRequest; res: IPinResponse };
+	'i/read-all-unread-notes': { req: EmptyRequest; res: EmptyResponse };
+	'i/read-announcement': { req: IReadAnnouncementRequest; res: EmptyResponse };
+	'i/registry/get-all': { req: IRegistryGetAllRequest; res: EmptyResponse };
+	'i/registry/get-detail': { req: IRegistryGetDetailRequest; res: EmptyResponse };
+	'i/registry/get': { req: IRegistryGetRequest; res: EmptyResponse };
+	'i/registry/keys-with-type': { req: IRegistryKeysWithTypeRequest; res: EmptyResponse };
+	'i/registry/keys': { req: IRegistryKeysRequest; res: EmptyResponse };
+	'i/registry/remove': { req: IRegistryRemoveRequest; res: EmptyResponse };
+	'i/registry/set': { req: IRegistrySetRequest; res: EmptyResponse };
+	'i/unpin': { req: IUnpinRequest; res: IUnpinResponse };
+	'i/update': { req: IUpdateRequest; res: IUpdateResponse };
+	'i/webhooks/create': { req: IWebhooksCreateRequest; res: EmptyResponse };
+	'i/webhooks/list': { req: EmptyRequest; res: EmptyResponse };
+	'i/webhooks/show': { req: IWebhooksShowRequest; res: EmptyResponse };
+	'i/webhooks/update': { req: IWebhooksUpdateRequest; res: EmptyResponse };
+	'i/webhooks/delete': { req: IWebhooksDeleteRequest; res: EmptyResponse };
+	'invite/create': { req: EmptyRequest; res: InviteCreateResponse };
+	'invite/delete': { req: InviteDeleteRequest; res: EmptyResponse };
+	'invite/list': { req: InviteListRequest; res: InviteListResponse };
+	'invite/limit': { req: EmptyRequest; res: InviteLimitResponse };
+	'meta': { req: MetaRequest; res: MetaResponse };
+	'emojis': { req: EmptyRequest; res: EmojisResponse };
+	'emoji': { req: EmojiRequest; res: EmojiResponse };
+	'mute/create': { req: MuteCreateRequest; res: EmptyResponse };
+	'mute/delete': { req: MuteDeleteRequest; res: EmptyResponse };
+	'mute/list': { req: MuteListRequest; res: MuteListResponse };
+	'renote-mute/create': { req: RenoteMuteCreateRequest; res: EmptyResponse };
+	'renote-mute/delete': { req: RenoteMuteDeleteRequest; res: EmptyResponse };
+	'renote-mute/list': { req: RenoteMuteListRequest; res: RenoteMuteListResponse };
+	'my/apps': { req: MyAppsRequest; res: MyAppsResponse };
+	'notes': { req: NotesRequest; res: NotesResponse };
+	'notes/children': { req: NotesChildrenRequest; res: NotesChildrenResponse };
+	'notes/clips': { req: NotesClipsRequest; res: NotesClipsResponse };
+	'notes/conversation': { req: NotesConversationRequest; res: NotesConversationResponse };
+	'notes/create': { req: NotesCreateRequest; res: NotesCreateResponse };
+	'notes/delete': { req: NotesDeleteRequest; res: EmptyResponse };
+	'notes/favorites/create': { req: NotesFavoritesCreateRequest; res: EmptyResponse };
+	'notes/favorites/delete': { req: NotesFavoritesDeleteRequest; res: EmptyResponse };
+	'notes/featured': { req: NotesFeaturedRequest; res: NotesFeaturedResponse };
+	'notes/global-timeline': { req: NotesGlobalTimelineRequest; res: NotesGlobalTimelineResponse };
+	'notes/hybrid-timeline': { req: NotesHybridTimelineRequest; res: NotesHybridTimelineResponse };
+	'notes/local-timeline': { req: NotesLocalTimelineRequest; res: NotesLocalTimelineResponse };
+	'notes/mentions': { req: NotesMentionsRequest; res: NotesMentionsResponse };
+	'notes/polls/recommendation': { req: NotesPollsRecommendationRequest; res: NotesPollsRecommendationResponse };
+	'notes/polls/vote': { req: NotesPollsVoteRequest; res: EmptyResponse };
+	'notes/reactions': { req: NotesReactionsRequest; res: NotesReactionsResponse };
+	'notes/reactions/create': { req: NotesReactionsCreateRequest; res: EmptyResponse };
+	'notes/reactions/delete': { req: NotesReactionsDeleteRequest; res: EmptyResponse };
+	'notes/renotes': { req: NotesRenotesRequest; res: NotesRenotesResponse };
+	'notes/replies': { req: NotesRepliesRequest; res: NotesRepliesResponse };
+	'notes/search-by-tag': { req: NotesSearchByTagRequest; res: NotesSearchByTagResponse };
+	'notes/search': { req: NotesSearchRequest; res: NotesSearchResponse };
+	'notes/show': { req: NotesShowRequest; res: NotesShowResponse };
+	'notes/state': { req: NotesStateRequest; res: NotesStateResponse };
+	'notes/thread-muting/create': { req: NotesThreadMutingCreateRequest; res: EmptyResponse };
+	'notes/thread-muting/delete': { req: NotesThreadMutingDeleteRequest; res: EmptyResponse };
+	'notes/timeline': { req: NotesTimelineRequest; res: NotesTimelineResponse };
+	'notes/translate': { req: NotesTranslateRequest; res: NotesTranslateResponse };
+	'notes/unrenote': { req: NotesUnrenoteRequest; res: EmptyResponse };
+	'notes/user-list-timeline': { req: NotesUserListTimelineRequest; res: NotesUserListTimelineResponse };
+	'notifications/create': { req: NotificationsCreateRequest; res: EmptyResponse };
+	'notifications/mark-all-as-read': { req: EmptyRequest; res: EmptyResponse };
+	'notifications/test-notification': { req: EmptyRequest; res: EmptyResponse };
+	'pages/create': { req: PagesCreateRequest; res: PagesCreateResponse };
+	'pages/delete': { req: PagesDeleteRequest; res: EmptyResponse };
+	'pages/featured': { req: EmptyRequest; res: PagesFeaturedResponse };
+	'pages/like': { req: PagesLikeRequest; res: EmptyResponse };
+	'pages/show': { req: PagesShowRequest; res: PagesShowResponse };
+	'pages/unlike': { req: PagesUnlikeRequest; res: EmptyResponse };
+	'pages/update': { req: PagesUpdateRequest; res: EmptyResponse };
+	'flash/create': { req: FlashCreateRequest; res: EmptyResponse };
+	'flash/delete': { req: FlashDeleteRequest; res: EmptyResponse };
+	'flash/featured': { req: EmptyRequest; res: FlashFeaturedResponse };
+	'flash/like': { req: FlashLikeRequest; res: EmptyResponse };
+	'flash/show': { req: FlashShowRequest; res: FlashShowResponse };
+	'flash/unlike': { req: FlashUnlikeRequest; res: EmptyResponse };
+	'flash/update': { req: FlashUpdateRequest; res: EmptyResponse };
+	'flash/my': { req: FlashMyRequest; res: FlashMyResponse };
+	'flash/my-likes': { req: FlashMyLikesRequest; res: FlashMyLikesResponse };
+	'ping': { req: EmptyRequest; res: PingResponse };
+	'pinned-users': { req: EmptyRequest; res: PinnedUsersResponse };
+	'promo/read': { req: PromoReadRequest; res: EmptyResponse };
+	'roles/list': { req: EmptyRequest; res: EmptyResponse };
+	'roles/show': { req: RolesShowRequest; res: EmptyResponse };
+	'roles/users': { req: RolesUsersRequest; res: EmptyResponse };
+	'roles/notes': { req: RolesNotesRequest; res: RolesNotesResponse };
+	'request-reset-password': { req: RequestResetPasswordRequest; res: EmptyResponse };
+	'reset-db': { req: EmptyRequest; res: EmptyResponse };
+	'reset-password': { req: ResetPasswordRequest; res: EmptyResponse };
+	'server-info': { req: EmptyRequest; res: EmptyResponse };
+	'stats': { req: EmptyRequest; res: StatsResponse };
+	'sw/show-registration': { req: SwShowRegistrationRequest; res: SwShowRegistrationResponse };
+	'sw/update-registration': { req: SwUpdateRegistrationRequest; res: SwUpdateRegistrationResponse };
+	'sw/register': { req: SwRegisterRequest; res: SwRegisterResponse };
+	'sw/unregister': { req: SwUnregisterRequest; res: EmptyResponse };
+	'test': { req: TestRequest; res: EmptyResponse };
+	'username/available': { req: UsernameAvailableRequest; res: UsernameAvailableResponse };
+	'users': { req: UsersRequest; res: UsersResponse };
+	'users/clips': { req: UsersClipsRequest; res: UsersClipsResponse };
+	'users/followers': { req: UsersFollowersRequest; res: UsersFollowersResponse };
+	'users/following': { req: UsersFollowingRequest; res: UsersFollowingResponse };
+	'users/gallery/posts': { req: UsersGalleryPostsRequest; res: UsersGalleryPostsResponse };
+	'users/get-frequently-replied-users': { req: UsersGetFrequentlyRepliedUsersRequest; res: UsersGetFrequentlyRepliedUsersResponse };
+	'users/featured-notes': { req: UsersFeaturedNotesRequest; res: UsersFeaturedNotesResponse };
+	'users/lists/create': { req: UsersListsCreateRequest; res: UsersListsCreateResponse };
+	'users/lists/delete': { req: UsersListsDeleteRequest; res: EmptyResponse };
+	'users/lists/list': { req: UsersListsListRequest; res: UsersListsListResponse };
+	'users/lists/pull': { req: UsersListsPullRequest; res: EmptyResponse };
+	'users/lists/push': { req: UsersListsPushRequest; res: EmptyResponse };
+	'users/lists/show': { req: UsersListsShowRequest; res: UsersListsShowResponse };
+	'users/lists/favorite': { req: UsersListsFavoriteRequest; res: EmptyResponse };
+	'users/lists/unfavorite': { req: UsersListsUnfavoriteRequest; res: EmptyResponse };
+	'users/lists/update': { req: UsersListsUpdateRequest; res: UsersListsUpdateResponse };
+	'users/lists/create-from-public': { req: UsersListsCreateFromPublicRequest; res: UsersListsCreateFromPublicResponse };
+	'users/lists/update-membership': { req: UsersListsUpdateMembershipRequest; res: EmptyResponse };
+	'users/lists/get-memberships': { req: UsersListsGetMembershipsRequest; res: EmptyResponse };
+	'users/notes': { req: UsersNotesRequest; res: UsersNotesResponse };
+	'users/pages': { req: UsersPagesRequest; res: UsersPagesResponse };
+	'users/flashs': { req: UsersFlashsRequest; res: UsersFlashsResponse };
+	'users/reactions': { req: UsersReactionsRequest; res: UsersReactionsResponse };
+	'users/recommendation': { req: UsersRecommendationRequest; res: UsersRecommendationResponse };
+	'users/relation': { req: UsersRelationRequest; res: UsersRelationResponse };
+	'users/report-abuse': { req: UsersReportAbuseRequest; res: EmptyResponse };
+	'users/search-by-username-and-host': { req: UsersSearchByUsernameAndHostRequest; res: UsersSearchByUsernameAndHostResponse };
+	'users/search': { req: UsersSearchRequest; res: UsersSearchResponse };
+	'users/show': { req: UsersShowRequest; res: UsersShowResponse };
+	'users/achievements': { req: UsersAchievementsRequest; res: EmptyResponse };
+	'users/update-memo': { req: UsersUpdateMemoRequest; res: EmptyResponse };
+	'fetch-rss': { req: FetchRssRequest; res: EmptyResponse };
+	'fetch-external-resources': { req: FetchExternalResourcesRequest; res: EmptyResponse };
+	'retention': { req: EmptyRequest; res: RetentionResponse };
+}
diff --git a/packages/misskey-js/src/autogen/entities.ts b/packages/misskey-js/src/autogen/entities.ts
new file mode 100644
index 0000000000..133a30b4ca
--- /dev/null
+++ b/packages/misskey-js/src/autogen/entities.ts
@@ -0,0 +1,478 @@
+/*
+ * version: 2023.11.1
+ * generatedAt: 2023-11-27T02:24:45.111Z
+ */
+
+import { operations } from './types.js';
+
+export type EmptyRequest = Record<string, unknown> | undefined;
+export type EmptyResponse = Record<string, unknown> | undefined;
+
+export type AdminMetaResponse = operations['admin/meta']['responses']['200']['content']['application/json'];
+export type AdminAbuseUserReportsRequest = operations['admin/abuse-user-reports']['requestBody']['content']['application/json'];
+export type AdminAbuseUserReportsResponse = operations['admin/abuse-user-reports']['responses']['200']['content']['application/json'];
+export type AdminAccountsCreateRequest = operations['admin/accounts/create']['requestBody']['content']['application/json'];
+export type AdminAccountsCreateResponse = operations['admin/accounts/create']['responses']['200']['content']['application/json'];
+export type AdminAccountsDeleteRequest = operations['admin/accounts/delete']['requestBody']['content']['application/json'];
+export type AdminAccountsFindByEmailRequest = operations['admin/accounts/find-by-email']['requestBody']['content']['application/json'];
+export type AdminAdCreateRequest = operations['admin/ad/create']['requestBody']['content']['application/json'];
+export type AdminAdDeleteRequest = operations['admin/ad/delete']['requestBody']['content']['application/json'];
+export type AdminAdListRequest = operations['admin/ad/list']['requestBody']['content']['application/json'];
+export type AdminAdUpdateRequest = operations['admin/ad/update']['requestBody']['content']['application/json'];
+export type AdminAnnouncementsCreateRequest = operations['admin/announcements/create']['requestBody']['content']['application/json'];
+export type AdminAnnouncementsCreateResponse = operations['admin/announcements/create']['responses']['200']['content']['application/json'];
+export type AdminAnnouncementsDeleteRequest = operations['admin/announcements/delete']['requestBody']['content']['application/json'];
+export type AdminAnnouncementsListRequest = operations['admin/announcements/list']['requestBody']['content']['application/json'];
+export type AdminAnnouncementsListResponse = operations['admin/announcements/list']['responses']['200']['content']['application/json'];
+export type AdminAnnouncementsUpdateRequest = operations['admin/announcements/update']['requestBody']['content']['application/json'];
+export type AdminAvatarDecorationsCreateRequest = operations['admin/avatar-decorations/create']['requestBody']['content']['application/json'];
+export type AdminAvatarDecorationsDeleteRequest = operations['admin/avatar-decorations/delete']['requestBody']['content']['application/json'];
+export type AdminAvatarDecorationsListRequest = operations['admin/avatar-decorations/list']['requestBody']['content']['application/json'];
+export type AdminAvatarDecorationsListResponse = operations['admin/avatar-decorations/list']['responses']['200']['content']['application/json'];
+export type AdminAvatarDecorationsUpdateRequest = operations['admin/avatar-decorations/update']['requestBody']['content']['application/json'];
+export type AdminDeleteAllFilesOfAUserRequest = operations['admin/delete-all-files-of-a-user']['requestBody']['content']['application/json'];
+export type AdminUnsetUserAvatarRequest = operations['admin/unset-user-avatar']['requestBody']['content']['application/json'];
+export type AdminUnsetUserBannerRequest = operations['admin/unset-user-banner']['requestBody']['content']['application/json'];
+export type AdminDriveFilesRequest = operations['admin/drive/files']['requestBody']['content']['application/json'];
+export type AdminDriveFilesResponse = operations['admin/drive/files']['responses']['200']['content']['application/json'];
+export type AdminDriveShowFileRequest = operations['admin/drive/show-file']['requestBody']['content']['application/json'];
+export type AdminDriveShowFileResponse = operations['admin/drive/show-file']['responses']['200']['content']['application/json'];
+export type AdminEmojiAddAliasesBulkRequest = operations['admin/emoji/add-aliases-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiAddRequest = operations['admin/emoji/add']['requestBody']['content']['application/json'];
+export type AdminEmojiCopyRequest = operations['admin/emoji/copy']['requestBody']['content']['application/json'];
+export type AdminEmojiCopyResponse = operations['admin/emoji/copy']['responses']['200']['content']['application/json'];
+export type AdminEmojiDeleteBulkRequest = operations['admin/emoji/delete-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiDeleteRequest = operations['admin/emoji/delete']['requestBody']['content']['application/json'];
+export type AdminEmojiListRemoteRequest = operations['admin/emoji/list-remote']['requestBody']['content']['application/json'];
+export type AdminEmojiListRemoteResponse = operations['admin/emoji/list-remote']['responses']['200']['content']['application/json'];
+export type AdminEmojiListRequest = operations['admin/emoji/list']['requestBody']['content']['application/json'];
+export type AdminEmojiListResponse = operations['admin/emoji/list']['responses']['200']['content']['application/json'];
+export type AdminEmojiRemoveAliasesBulkRequest = operations['admin/emoji/remove-aliases-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiSetAliasesBulkRequest = operations['admin/emoji/set-aliases-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiSetCategoryBulkRequest = operations['admin/emoji/set-category-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiSetLicenseBulkRequest = operations['admin/emoji/set-license-bulk']['requestBody']['content']['application/json'];
+export type AdminEmojiUpdateRequest = operations['admin/emoji/update']['requestBody']['content']['application/json'];
+export type AdminFederationDeleteAllFilesRequest = operations['admin/federation/delete-all-files']['requestBody']['content']['application/json'];
+export type AdminFederationRefreshRemoteInstanceMetadataRequest = operations['admin/federation/refresh-remote-instance-metadata']['requestBody']['content']['application/json'];
+export type AdminFederationRemoveAllFollowingRequest = operations['admin/federation/remove-all-following']['requestBody']['content']['application/json'];
+export type AdminFederationUpdateInstanceRequest = operations['admin/federation/update-instance']['requestBody']['content']['application/json'];
+export type AdminGetTableStatsResponse = operations['admin/get-table-stats']['responses']['200']['content']['application/json'];
+export type AdminGetUserIpsRequest = operations['admin/get-user-ips']['requestBody']['content']['application/json'];
+export type AdminInviteCreateRequest = operations['admin/invite/create']['requestBody']['content']['application/json'];
+export type AdminInviteCreateResponse = operations['admin/invite/create']['responses']['200']['content']['application/json'];
+export type AdminInviteListRequest = operations['admin/invite/list']['requestBody']['content']['application/json'];
+export type AdminInviteListResponse = operations['admin/invite/list']['responses']['200']['content']['application/json'];
+export type AdminPromoCreateRequest = operations['admin/promo/create']['requestBody']['content']['application/json'];
+export type AdminQueueDeliverDelayedResponse = operations['admin/queue/deliver-delayed']['responses']['200']['content']['application/json'];
+export type AdminQueueInboxDelayedResponse = operations['admin/queue/inbox-delayed']['responses']['200']['content']['application/json'];
+export type AdminQueuePromoteRequest = operations['admin/queue/promote']['requestBody']['content']['application/json'];
+export type AdminQueueStatsResponse = operations['admin/queue/stats']['responses']['200']['content']['application/json'];
+export type AdminRelaysAddRequest = operations['admin/relays/add']['requestBody']['content']['application/json'];
+export type AdminRelaysAddResponse = operations['admin/relays/add']['responses']['200']['content']['application/json'];
+export type AdminRelaysListResponse = operations['admin/relays/list']['responses']['200']['content']['application/json'];
+export type AdminRelaysRemoveRequest = operations['admin/relays/remove']['requestBody']['content']['application/json'];
+export type AdminResetPasswordRequest = operations['admin/reset-password']['requestBody']['content']['application/json'];
+export type AdminResetPasswordResponse = operations['admin/reset-password']['responses']['200']['content']['application/json'];
+export type AdminResolveAbuseUserReportRequest = operations['admin/resolve-abuse-user-report']['requestBody']['content']['application/json'];
+export type AdminSendEmailRequest = operations['admin/send-email']['requestBody']['content']['application/json'];
+export type AdminServerInfoResponse = operations['admin/server-info']['responses']['200']['content']['application/json'];
+export type AdminShowModerationLogsRequest = operations['admin/show-moderation-logs']['requestBody']['content']['application/json'];
+export type AdminShowModerationLogsResponse = operations['admin/show-moderation-logs']['responses']['200']['content']['application/json'];
+export type AdminShowUserRequest = operations['admin/show-user']['requestBody']['content']['application/json'];
+export type AdminShowUserResponse = operations['admin/show-user']['responses']['200']['content']['application/json'];
+export type AdminShowUsersRequest = operations['admin/show-users']['requestBody']['content']['application/json'];
+export type AdminShowUsersResponse = operations['admin/show-users']['responses']['200']['content']['application/json'];
+export type AdminSuspendUserRequest = operations['admin/suspend-user']['requestBody']['content']['application/json'];
+export type AdminUnsuspendUserRequest = operations['admin/unsuspend-user']['requestBody']['content']['application/json'];
+export type AdminUpdateMetaRequest = operations['admin/update-meta']['requestBody']['content']['application/json'];
+export type AdminDeleteAccountRequest = operations['admin/delete-account']['requestBody']['content']['application/json'];
+export type AdminDeleteAccountResponse = operations['admin/delete-account']['responses']['200']['content']['application/json'];
+export type AdminUpdateUserNoteRequest = operations['admin/update-user-note']['requestBody']['content']['application/json'];
+export type AdminRolesCreateRequest = operations['admin/roles/create']['requestBody']['content']['application/json'];
+export type AdminRolesDeleteRequest = operations['admin/roles/delete']['requestBody']['content']['application/json'];
+export type AdminRolesShowRequest = operations['admin/roles/show']['requestBody']['content']['application/json'];
+export type AdminRolesUpdateRequest = operations['admin/roles/update']['requestBody']['content']['application/json'];
+export type AdminRolesAssignRequest = operations['admin/roles/assign']['requestBody']['content']['application/json'];
+export type AdminRolesUnassignRequest = operations['admin/roles/unassign']['requestBody']['content']['application/json'];
+export type AdminRolesUpdateDefaultPoliciesRequest = operations['admin/roles/update-default-policies']['requestBody']['content']['application/json'];
+export type AdminRolesUsersRequest = operations['admin/roles/users']['requestBody']['content']['application/json'];
+export type AnnouncementsRequest = operations['announcements']['requestBody']['content']['application/json'];
+export type AnnouncementsResponse = operations['announcements']['responses']['200']['content']['application/json'];
+export type AntennasCreateRequest = operations['antennas/create']['requestBody']['content']['application/json'];
+export type AntennasCreateResponse = operations['antennas/create']['responses']['200']['content']['application/json'];
+export type AntennasDeleteRequest = operations['antennas/delete']['requestBody']['content']['application/json'];
+export type AntennasListResponse = operations['antennas/list']['responses']['200']['content']['application/json'];
+export type AntennasNotesRequest = operations['antennas/notes']['requestBody']['content']['application/json'];
+export type AntennasNotesResponse = operations['antennas/notes']['responses']['200']['content']['application/json'];
+export type AntennasShowRequest = operations['antennas/show']['requestBody']['content']['application/json'];
+export type AntennasShowResponse = operations['antennas/show']['responses']['200']['content']['application/json'];
+export type AntennasUpdateRequest = operations['antennas/update']['requestBody']['content']['application/json'];
+export type AntennasUpdateResponse = operations['antennas/update']['responses']['200']['content']['application/json'];
+export type ApGetRequest = operations['ap/get']['requestBody']['content']['application/json'];
+export type ApGetResponse = operations['ap/get']['responses']['200']['content']['application/json'];
+export type ApShowRequest = operations['ap/show']['requestBody']['content']['application/json'];
+export type ApShowResponse = operations['ap/show']['responses']['200']['content']['application/json'];
+export type AppCreateRequest = operations['app/create']['requestBody']['content']['application/json'];
+export type AppCreateResponse = operations['app/create']['responses']['200']['content']['application/json'];
+export type AppShowRequest = operations['app/show']['requestBody']['content']['application/json'];
+export type AppShowResponse = operations['app/show']['responses']['200']['content']['application/json'];
+export type AuthSessionGenerateRequest = operations['auth/session/generate']['requestBody']['content']['application/json'];
+export type AuthSessionGenerateResponse = operations['auth/session/generate']['responses']['200']['content']['application/json'];
+export type AuthSessionShowRequest = operations['auth/session/show']['requestBody']['content']['application/json'];
+export type AuthSessionShowResponse = operations['auth/session/show']['responses']['200']['content']['application/json'];
+export type AuthSessionUserkeyRequest = operations['auth/session/userkey']['requestBody']['content']['application/json'];
+export type AuthSessionUserkeyResponse = operations['auth/session/userkey']['responses']['200']['content']['application/json'];
+export type BlockingCreateRequest = operations['blocking/create']['requestBody']['content']['application/json'];
+export type BlockingCreateResponse = operations['blocking/create']['responses']['200']['content']['application/json'];
+export type BlockingDeleteRequest = operations['blocking/delete']['requestBody']['content']['application/json'];
+export type BlockingDeleteResponse = operations['blocking/delete']['responses']['200']['content']['application/json'];
+export type BlockingListRequest = operations['blocking/list']['requestBody']['content']['application/json'];
+export type BlockingListResponse = operations['blocking/list']['responses']['200']['content']['application/json'];
+export type ChannelsCreateRequest = operations['channels/create']['requestBody']['content']['application/json'];
+export type ChannelsCreateResponse = operations['channels/create']['responses']['200']['content']['application/json'];
+export type ChannelsFeaturedResponse = operations['channels/featured']['responses']['200']['content']['application/json'];
+export type ChannelsFollowRequest = operations['channels/follow']['requestBody']['content']['application/json'];
+export type ChannelsFollowedRequest = operations['channels/followed']['requestBody']['content']['application/json'];
+export type ChannelsFollowedResponse = operations['channels/followed']['responses']['200']['content']['application/json'];
+export type ChannelsOwnedRequest = operations['channels/owned']['requestBody']['content']['application/json'];
+export type ChannelsOwnedResponse = operations['channels/owned']['responses']['200']['content']['application/json'];
+export type ChannelsShowRequest = operations['channels/show']['requestBody']['content']['application/json'];
+export type ChannelsShowResponse = operations['channels/show']['responses']['200']['content']['application/json'];
+export type ChannelsTimelineRequest = operations['channels/timeline']['requestBody']['content']['application/json'];
+export type ChannelsTimelineResponse = operations['channels/timeline']['responses']['200']['content']['application/json'];
+export type ChannelsUnfollowRequest = operations['channels/unfollow']['requestBody']['content']['application/json'];
+export type ChannelsUpdateRequest = operations['channels/update']['requestBody']['content']['application/json'];
+export type ChannelsUpdateResponse = operations['channels/update']['responses']['200']['content']['application/json'];
+export type ChannelsFavoriteRequest = operations['channels/favorite']['requestBody']['content']['application/json'];
+export type ChannelsUnfavoriteRequest = operations['channels/unfavorite']['requestBody']['content']['application/json'];
+export type ChannelsMyFavoritesResponse = operations['channels/my-favorites']['responses']['200']['content']['application/json'];
+export type ChannelsSearchRequest = operations['channels/search']['requestBody']['content']['application/json'];
+export type ChannelsSearchResponse = operations['channels/search']['responses']['200']['content']['application/json'];
+export type ChartsActiveUsersRequest = operations['charts/active-users']['requestBody']['content']['application/json'];
+export type ChartsActiveUsersResponse = operations['charts/active-users']['responses']['200']['content']['application/json'];
+export type ChartsApRequestRequest = operations['charts/ap-request']['requestBody']['content']['application/json'];
+export type ChartsApRequestResponse = operations['charts/ap-request']['responses']['200']['content']['application/json'];
+export type ChartsDriveRequest = operations['charts/drive']['requestBody']['content']['application/json'];
+export type ChartsDriveResponse = operations['charts/drive']['responses']['200']['content']['application/json'];
+export type ChartsFederationRequest = operations['charts/federation']['requestBody']['content']['application/json'];
+export type ChartsFederationResponse = operations['charts/federation']['responses']['200']['content']['application/json'];
+export type ChartsInstanceRequest = operations['charts/instance']['requestBody']['content']['application/json'];
+export type ChartsInstanceResponse = operations['charts/instance']['responses']['200']['content']['application/json'];
+export type ChartsNotesRequest = operations['charts/notes']['requestBody']['content']['application/json'];
+export type ChartsNotesResponse = operations['charts/notes']['responses']['200']['content']['application/json'];
+export type ChartsUserDriveRequest = operations['charts/user/drive']['requestBody']['content']['application/json'];
+export type ChartsUserDriveResponse = operations['charts/user/drive']['responses']['200']['content']['application/json'];
+export type ChartsUserFollowingRequest = operations['charts/user/following']['requestBody']['content']['application/json'];
+export type ChartsUserFollowingResponse = operations['charts/user/following']['responses']['200']['content']['application/json'];
+export type ChartsUserNotesRequest = operations['charts/user/notes']['requestBody']['content']['application/json'];
+export type ChartsUserNotesResponse = operations['charts/user/notes']['responses']['200']['content']['application/json'];
+export type ChartsUserPvRequest = operations['charts/user/pv']['requestBody']['content']['application/json'];
+export type ChartsUserPvResponse = operations['charts/user/pv']['responses']['200']['content']['application/json'];
+export type ChartsUserReactionsRequest = operations['charts/user/reactions']['requestBody']['content']['application/json'];
+export type ChartsUserReactionsResponse = operations['charts/user/reactions']['responses']['200']['content']['application/json'];
+export type ChartsUsersRequest = operations['charts/users']['requestBody']['content']['application/json'];
+export type ChartsUsersResponse = operations['charts/users']['responses']['200']['content']['application/json'];
+export type ClipsAddNoteRequest = operations['clips/add-note']['requestBody']['content']['application/json'];
+export type ClipsRemoveNoteRequest = operations['clips/remove-note']['requestBody']['content']['application/json'];
+export type ClipsCreateRequest = operations['clips/create']['requestBody']['content']['application/json'];
+export type ClipsCreateResponse = operations['clips/create']['responses']['200']['content']['application/json'];
+export type ClipsDeleteRequest = operations['clips/delete']['requestBody']['content']['application/json'];
+export type ClipsListResponse = operations['clips/list']['responses']['200']['content']['application/json'];
+export type ClipsNotesRequest = operations['clips/notes']['requestBody']['content']['application/json'];
+export type ClipsNotesResponse = operations['clips/notes']['responses']['200']['content']['application/json'];
+export type ClipsShowRequest = operations['clips/show']['requestBody']['content']['application/json'];
+export type ClipsShowResponse = operations['clips/show']['responses']['200']['content']['application/json'];
+export type ClipsUpdateRequest = operations['clips/update']['requestBody']['content']['application/json'];
+export type ClipsUpdateResponse = operations['clips/update']['responses']['200']['content']['application/json'];
+export type ClipsFavoriteRequest = operations['clips/favorite']['requestBody']['content']['application/json'];
+export type ClipsUnfavoriteRequest = operations['clips/unfavorite']['requestBody']['content']['application/json'];
+export type ClipsMyFavoritesResponse = operations['clips/my-favorites']['responses']['200']['content']['application/json'];
+export type DriveResponse = operations['drive']['responses']['200']['content']['application/json'];
+export type DriveFilesRequest = operations['drive/files']['requestBody']['content']['application/json'];
+export type DriveFilesResponse = operations['drive/files']['responses']['200']['content']['application/json'];
+export type DriveFilesAttachedNotesRequest = operations['drive/files/attached-notes']['requestBody']['content']['application/json'];
+export type DriveFilesAttachedNotesResponse = operations['drive/files/attached-notes']['responses']['200']['content']['application/json'];
+export type DriveFilesCheckExistenceRequest = operations['drive/files/check-existence']['requestBody']['content']['application/json'];
+export type DriveFilesCheckExistenceResponse = operations['drive/files/check-existence']['responses']['200']['content']['application/json'];
+export type DriveFilesCreateRequest = operations['drive/files/create']['requestBody']['content']['multipart/form-data'];
+export type DriveFilesCreateResponse = operations['drive/files/create']['responses']['200']['content']['application/json'];
+export type DriveFilesDeleteRequest = operations['drive/files/delete']['requestBody']['content']['application/json'];
+export type DriveFilesFindByHashRequest = operations['drive/files/find-by-hash']['requestBody']['content']['application/json'];
+export type DriveFilesFindByHashResponse = operations['drive/files/find-by-hash']['responses']['200']['content']['application/json'];
+export type DriveFilesFindRequest = operations['drive/files/find']['requestBody']['content']['application/json'];
+export type DriveFilesFindResponse = operations['drive/files/find']['responses']['200']['content']['application/json'];
+export type DriveFilesShowRequest = operations['drive/files/show']['requestBody']['content']['application/json'];
+export type DriveFilesShowResponse = operations['drive/files/show']['responses']['200']['content']['application/json'];
+export type DriveFilesUpdateRequest = operations['drive/files/update']['requestBody']['content']['application/json'];
+export type DriveFilesUpdateResponse = operations['drive/files/update']['responses']['200']['content']['application/json'];
+export type DriveFilesUploadFromUrlRequest = operations['drive/files/upload-from-url']['requestBody']['content']['application/json'];
+export type DriveFoldersRequest = operations['drive/folders']['requestBody']['content']['application/json'];
+export type DriveFoldersResponse = operations['drive/folders']['responses']['200']['content']['application/json'];
+export type DriveFoldersCreateRequest = operations['drive/folders/create']['requestBody']['content']['application/json'];
+export type DriveFoldersCreateResponse = operations['drive/folders/create']['responses']['200']['content']['application/json'];
+export type DriveFoldersDeleteRequest = operations['drive/folders/delete']['requestBody']['content']['application/json'];
+export type DriveFoldersFindRequest = operations['drive/folders/find']['requestBody']['content']['application/json'];
+export type DriveFoldersFindResponse = operations['drive/folders/find']['responses']['200']['content']['application/json'];
+export type DriveFoldersShowRequest = operations['drive/folders/show']['requestBody']['content']['application/json'];
+export type DriveFoldersShowResponse = operations['drive/folders/show']['responses']['200']['content']['application/json'];
+export type DriveFoldersUpdateRequest = operations['drive/folders/update']['requestBody']['content']['application/json'];
+export type DriveFoldersUpdateResponse = operations['drive/folders/update']['responses']['200']['content']['application/json'];
+export type DriveStreamRequest = operations['drive/stream']['requestBody']['content']['application/json'];
+export type DriveStreamResponse = operations['drive/stream']['responses']['200']['content']['application/json'];
+export type EmailAddressAvailableRequest = operations['email-address/available']['requestBody']['content']['application/json'];
+export type EmailAddressAvailableResponse = operations['email-address/available']['responses']['200']['content']['application/json'];
+export type EndpointRequest = operations['endpoint']['requestBody']['content']['application/json'];
+export type EndpointsResponse = operations['endpoints']['responses']['200']['content']['application/json'];
+export type FederationFollowersRequest = operations['federation/followers']['requestBody']['content']['application/json'];
+export type FederationFollowersResponse = operations['federation/followers']['responses']['200']['content']['application/json'];
+export type FederationFollowingRequest = operations['federation/following']['requestBody']['content']['application/json'];
+export type FederationFollowingResponse = operations['federation/following']['responses']['200']['content']['application/json'];
+export type FederationInstancesRequest = operations['federation/instances']['requestBody']['content']['application/json'];
+export type FederationInstancesResponse = operations['federation/instances']['responses']['200']['content']['application/json'];
+export type FederationShowInstanceRequest = operations['federation/show-instance']['requestBody']['content']['application/json'];
+export type FederationShowInstanceResponse = operations['federation/show-instance']['responses']['200']['content']['application/json'];
+export type FederationUpdateRemoteUserRequest = operations['federation/update-remote-user']['requestBody']['content']['application/json'];
+export type FederationUsersRequest = operations['federation/users']['requestBody']['content']['application/json'];
+export type FederationUsersResponse = operations['federation/users']['responses']['200']['content']['application/json'];
+export type FederationStatsRequest = operations['federation/stats']['requestBody']['content']['application/json'];
+export type FollowingCreateRequest = operations['following/create']['requestBody']['content']['application/json'];
+export type FollowingCreateResponse = operations['following/create']['responses']['200']['content']['application/json'];
+export type FollowingDeleteRequest = operations['following/delete']['requestBody']['content']['application/json'];
+export type FollowingDeleteResponse = operations['following/delete']['responses']['200']['content']['application/json'];
+export type FollowingUpdateRequest = operations['following/update']['requestBody']['content']['application/json'];
+export type FollowingUpdateResponse = operations['following/update']['responses']['200']['content']['application/json'];
+export type FollowingUpdateAllRequest = operations['following/update-all']['requestBody']['content']['application/json'];
+export type FollowingInvalidateRequest = operations['following/invalidate']['requestBody']['content']['application/json'];
+export type FollowingInvalidateResponse = operations['following/invalidate']['responses']['200']['content']['application/json'];
+export type FollowingRequestsAcceptRequest = operations['following/requests/accept']['requestBody']['content']['application/json'];
+export type FollowingRequestsCancelRequest = operations['following/requests/cancel']['requestBody']['content']['application/json'];
+export type FollowingRequestsCancelResponse = operations['following/requests/cancel']['responses']['200']['content']['application/json'];
+export type FollowingRequestsListRequest = operations['following/requests/list']['requestBody']['content']['application/json'];
+export type FollowingRequestsListResponse = operations['following/requests/list']['responses']['200']['content']['application/json'];
+export type FollowingRequestsRejectRequest = operations['following/requests/reject']['requestBody']['content']['application/json'];
+export type GalleryFeaturedRequest = operations['gallery/featured']['requestBody']['content']['application/json'];
+export type GalleryFeaturedResponse = operations['gallery/featured']['responses']['200']['content']['application/json'];
+export type GalleryPopularResponse = operations['gallery/popular']['responses']['200']['content']['application/json'];
+export type GalleryPostsRequest = operations['gallery/posts']['requestBody']['content']['application/json'];
+export type GalleryPostsResponse = operations['gallery/posts']['responses']['200']['content']['application/json'];
+export type GalleryPostsCreateRequest = operations['gallery/posts/create']['requestBody']['content']['application/json'];
+export type GalleryPostsCreateResponse = operations['gallery/posts/create']['responses']['200']['content']['application/json'];
+export type GalleryPostsDeleteRequest = operations['gallery/posts/delete']['requestBody']['content']['application/json'];
+export type GalleryPostsLikeRequest = operations['gallery/posts/like']['requestBody']['content']['application/json'];
+export type GalleryPostsShowRequest = operations['gallery/posts/show']['requestBody']['content']['application/json'];
+export type GalleryPostsShowResponse = operations['gallery/posts/show']['responses']['200']['content']['application/json'];
+export type GalleryPostsUnlikeRequest = operations['gallery/posts/unlike']['requestBody']['content']['application/json'];
+export type GalleryPostsUpdateRequest = operations['gallery/posts/update']['requestBody']['content']['application/json'];
+export type GalleryPostsUpdateResponse = operations['gallery/posts/update']['responses']['200']['content']['application/json'];
+export type GetAvatarDecorationsResponse = operations['get-avatar-decorations']['responses']['200']['content']['application/json'];
+export type HashtagsListRequest = operations['hashtags/list']['requestBody']['content']['application/json'];
+export type HashtagsListResponse = operations['hashtags/list']['responses']['200']['content']['application/json'];
+export type HashtagsSearchRequest = operations['hashtags/search']['requestBody']['content']['application/json'];
+export type HashtagsSearchResponse = operations['hashtags/search']['responses']['200']['content']['application/json'];
+export type HashtagsShowRequest = operations['hashtags/show']['requestBody']['content']['application/json'];
+export type HashtagsShowResponse = operations['hashtags/show']['responses']['200']['content']['application/json'];
+export type HashtagsTrendResponse = operations['hashtags/trend']['responses']['200']['content']['application/json'];
+export type HashtagsUsersRequest = operations['hashtags/users']['requestBody']['content']['application/json'];
+export type HashtagsUsersResponse = operations['hashtags/users']['responses']['200']['content']['application/json'];
+export type IResponse = operations['i']['responses']['200']['content']['application/json'];
+export type IClaimAchievementRequest = operations['i/claim-achievement']['requestBody']['content']['application/json'];
+export type IFavoritesRequest = operations['i/favorites']['requestBody']['content']['application/json'];
+export type IFavoritesResponse = operations['i/favorites']['responses']['200']['content']['application/json'];
+export type IGalleryLikesRequest = operations['i/gallery/likes']['requestBody']['content']['application/json'];
+export type IGalleryLikesResponse = operations['i/gallery/likes']['responses']['200']['content']['application/json'];
+export type IGalleryPostsRequest = operations['i/gallery/posts']['requestBody']['content']['application/json'];
+export type IGalleryPostsResponse = operations['i/gallery/posts']['responses']['200']['content']['application/json'];
+export type INotificationsRequest = operations['i/notifications']['requestBody']['content']['application/json'];
+export type INotificationsResponse = operations['i/notifications']['responses']['200']['content']['application/json'];
+export type INotificationsGroupedRequest = operations['i/notifications-grouped']['requestBody']['content']['application/json'];
+export type INotificationsGroupedResponse = operations['i/notifications-grouped']['responses']['200']['content']['application/json'];
+export type IPageLikesRequest = operations['i/page-likes']['requestBody']['content']['application/json'];
+export type IPageLikesResponse = operations['i/page-likes']['responses']['200']['content']['application/json'];
+export type IPagesRequest = operations['i/pages']['requestBody']['content']['application/json'];
+export type IPagesResponse = operations['i/pages']['responses']['200']['content']['application/json'];
+export type IPinRequest = operations['i/pin']['requestBody']['content']['application/json'];
+export type IPinResponse = operations['i/pin']['responses']['200']['content']['application/json'];
+export type IReadAnnouncementRequest = operations['i/read-announcement']['requestBody']['content']['application/json'];
+export type IRegistryGetAllRequest = operations['i/registry/get-all']['requestBody']['content']['application/json'];
+export type IRegistryGetDetailRequest = operations['i/registry/get-detail']['requestBody']['content']['application/json'];
+export type IRegistryGetRequest = operations['i/registry/get']['requestBody']['content']['application/json'];
+export type IRegistryKeysWithTypeRequest = operations['i/registry/keys-with-type']['requestBody']['content']['application/json'];
+export type IRegistryKeysRequest = operations['i/registry/keys']['requestBody']['content']['application/json'];
+export type IRegistryRemoveRequest = operations['i/registry/remove']['requestBody']['content']['application/json'];
+export type IRegistrySetRequest = operations['i/registry/set']['requestBody']['content']['application/json'];
+export type IUnpinRequest = operations['i/unpin']['requestBody']['content']['application/json'];
+export type IUnpinResponse = operations['i/unpin']['responses']['200']['content']['application/json'];
+export type IUpdateRequest = operations['i/update']['requestBody']['content']['application/json'];
+export type IUpdateResponse = operations['i/update']['responses']['200']['content']['application/json'];
+export type IWebhooksCreateRequest = operations['i/webhooks/create']['requestBody']['content']['application/json'];
+export type IWebhooksShowRequest = operations['i/webhooks/show']['requestBody']['content']['application/json'];
+export type IWebhooksUpdateRequest = operations['i/webhooks/update']['requestBody']['content']['application/json'];
+export type IWebhooksDeleteRequest = operations['i/webhooks/delete']['requestBody']['content']['application/json'];
+export type InviteCreateResponse = operations['invite/create']['responses']['200']['content']['application/json'];
+export type InviteDeleteRequest = operations['invite/delete']['requestBody']['content']['application/json'];
+export type InviteListRequest = operations['invite/list']['requestBody']['content']['application/json'];
+export type InviteListResponse = operations['invite/list']['responses']['200']['content']['application/json'];
+export type InviteLimitResponse = operations['invite/limit']['responses']['200']['content']['application/json'];
+export type MetaRequest = operations['meta']['requestBody']['content']['application/json'];
+export type MetaResponse = operations['meta']['responses']['200']['content']['application/json'];
+export type EmojisResponse = operations['emojis']['responses']['200']['content']['application/json'];
+export type EmojiRequest = operations['emoji']['requestBody']['content']['application/json'];
+export type EmojiResponse = operations['emoji']['responses']['200']['content']['application/json'];
+export type MuteCreateRequest = operations['mute/create']['requestBody']['content']['application/json'];
+export type MuteDeleteRequest = operations['mute/delete']['requestBody']['content']['application/json'];
+export type MuteListRequest = operations['mute/list']['requestBody']['content']['application/json'];
+export type MuteListResponse = operations['mute/list']['responses']['200']['content']['application/json'];
+export type RenoteMuteCreateRequest = operations['renote-mute/create']['requestBody']['content']['application/json'];
+export type RenoteMuteDeleteRequest = operations['renote-mute/delete']['requestBody']['content']['application/json'];
+export type RenoteMuteListRequest = operations['renote-mute/list']['requestBody']['content']['application/json'];
+export type RenoteMuteListResponse = operations['renote-mute/list']['responses']['200']['content']['application/json'];
+export type MyAppsRequest = operations['my/apps']['requestBody']['content']['application/json'];
+export type MyAppsResponse = operations['my/apps']['responses']['200']['content']['application/json'];
+export type NotesRequest = operations['notes']['requestBody']['content']['application/json'];
+export type NotesResponse = operations['notes']['responses']['200']['content']['application/json'];
+export type NotesChildrenRequest = operations['notes/children']['requestBody']['content']['application/json'];
+export type NotesChildrenResponse = operations['notes/children']['responses']['200']['content']['application/json'];
+export type NotesClipsRequest = operations['notes/clips']['requestBody']['content']['application/json'];
+export type NotesClipsResponse = operations['notes/clips']['responses']['200']['content']['application/json'];
+export type NotesConversationRequest = operations['notes/conversation']['requestBody']['content']['application/json'];
+export type NotesConversationResponse = operations['notes/conversation']['responses']['200']['content']['application/json'];
+export type NotesCreateRequest = operations['notes/create']['requestBody']['content']['application/json'];
+export type NotesCreateResponse = operations['notes/create']['responses']['200']['content']['application/json'];
+export type NotesDeleteRequest = operations['notes/delete']['requestBody']['content']['application/json'];
+export type NotesFavoritesCreateRequest = operations['notes/favorites/create']['requestBody']['content']['application/json'];
+export type NotesFavoritesDeleteRequest = operations['notes/favorites/delete']['requestBody']['content']['application/json'];
+export type NotesFeaturedRequest = operations['notes/featured']['requestBody']['content']['application/json'];
+export type NotesFeaturedResponse = operations['notes/featured']['responses']['200']['content']['application/json'];
+export type NotesGlobalTimelineRequest = operations['notes/global-timeline']['requestBody']['content']['application/json'];
+export type NotesGlobalTimelineResponse = operations['notes/global-timeline']['responses']['200']['content']['application/json'];
+export type NotesHybridTimelineRequest = operations['notes/hybrid-timeline']['requestBody']['content']['application/json'];
+export type NotesHybridTimelineResponse = operations['notes/hybrid-timeline']['responses']['200']['content']['application/json'];
+export type NotesLocalTimelineRequest = operations['notes/local-timeline']['requestBody']['content']['application/json'];
+export type NotesLocalTimelineResponse = operations['notes/local-timeline']['responses']['200']['content']['application/json'];
+export type NotesMentionsRequest = operations['notes/mentions']['requestBody']['content']['application/json'];
+export type NotesMentionsResponse = operations['notes/mentions']['responses']['200']['content']['application/json'];
+export type NotesPollsRecommendationRequest = operations['notes/polls/recommendation']['requestBody']['content']['application/json'];
+export type NotesPollsRecommendationResponse = operations['notes/polls/recommendation']['responses']['200']['content']['application/json'];
+export type NotesPollsVoteRequest = operations['notes/polls/vote']['requestBody']['content']['application/json'];
+export type NotesReactionsRequest = operations['notes/reactions']['requestBody']['content']['application/json'];
+export type NotesReactionsResponse = operations['notes/reactions']['responses']['200']['content']['application/json'];
+export type NotesReactionsCreateRequest = operations['notes/reactions/create']['requestBody']['content']['application/json'];
+export type NotesReactionsDeleteRequest = operations['notes/reactions/delete']['requestBody']['content']['application/json'];
+export type NotesRenotesRequest = operations['notes/renotes']['requestBody']['content']['application/json'];
+export type NotesRenotesResponse = operations['notes/renotes']['responses']['200']['content']['application/json'];
+export type NotesRepliesRequest = operations['notes/replies']['requestBody']['content']['application/json'];
+export type NotesRepliesResponse = operations['notes/replies']['responses']['200']['content']['application/json'];
+export type NotesSearchByTagRequest = operations['notes/search-by-tag']['requestBody']['content']['application/json'];
+export type NotesSearchByTagResponse = operations['notes/search-by-tag']['responses']['200']['content']['application/json'];
+export type NotesSearchRequest = operations['notes/search']['requestBody']['content']['application/json'];
+export type NotesSearchResponse = operations['notes/search']['responses']['200']['content']['application/json'];
+export type NotesShowRequest = operations['notes/show']['requestBody']['content']['application/json'];
+export type NotesShowResponse = operations['notes/show']['responses']['200']['content']['application/json'];
+export type NotesStateRequest = operations['notes/state']['requestBody']['content']['application/json'];
+export type NotesStateResponse = operations['notes/state']['responses']['200']['content']['application/json'];
+export type NotesThreadMutingCreateRequest = operations['notes/thread-muting/create']['requestBody']['content']['application/json'];
+export type NotesThreadMutingDeleteRequest = operations['notes/thread-muting/delete']['requestBody']['content']['application/json'];
+export type NotesTimelineRequest = operations['notes/timeline']['requestBody']['content']['application/json'];
+export type NotesTimelineResponse = operations['notes/timeline']['responses']['200']['content']['application/json'];
+export type NotesTranslateRequest = operations['notes/translate']['requestBody']['content']['application/json'];
+export type NotesTranslateResponse = operations['notes/translate']['responses']['200']['content']['application/json'];
+export type NotesUnrenoteRequest = operations['notes/unrenote']['requestBody']['content']['application/json'];
+export type NotesUserListTimelineRequest = operations['notes/user-list-timeline']['requestBody']['content']['application/json'];
+export type NotesUserListTimelineResponse = operations['notes/user-list-timeline']['responses']['200']['content']['application/json'];
+export type NotificationsCreateRequest = operations['notifications/create']['requestBody']['content']['application/json'];
+export type PagesCreateRequest = operations['pages/create']['requestBody']['content']['application/json'];
+export type PagesCreateResponse = operations['pages/create']['responses']['200']['content']['application/json'];
+export type PagesDeleteRequest = operations['pages/delete']['requestBody']['content']['application/json'];
+export type PagesFeaturedResponse = operations['pages/featured']['responses']['200']['content']['application/json'];
+export type PagesLikeRequest = operations['pages/like']['requestBody']['content']['application/json'];
+export type PagesShowRequest = operations['pages/show']['requestBody']['content']['application/json'];
+export type PagesShowResponse = operations['pages/show']['responses']['200']['content']['application/json'];
+export type PagesUnlikeRequest = operations['pages/unlike']['requestBody']['content']['application/json'];
+export type PagesUpdateRequest = operations['pages/update']['requestBody']['content']['application/json'];
+export type FlashCreateRequest = operations['flash/create']['requestBody']['content']['application/json'];
+export type FlashDeleteRequest = operations['flash/delete']['requestBody']['content']['application/json'];
+export type FlashFeaturedResponse = operations['flash/featured']['responses']['200']['content']['application/json'];
+export type FlashLikeRequest = operations['flash/like']['requestBody']['content']['application/json'];
+export type FlashShowRequest = operations['flash/show']['requestBody']['content']['application/json'];
+export type FlashShowResponse = operations['flash/show']['responses']['200']['content']['application/json'];
+export type FlashUnlikeRequest = operations['flash/unlike']['requestBody']['content']['application/json'];
+export type FlashUpdateRequest = operations['flash/update']['requestBody']['content']['application/json'];
+export type FlashMyRequest = operations['flash/my']['requestBody']['content']['application/json'];
+export type FlashMyResponse = operations['flash/my']['responses']['200']['content']['application/json'];
+export type FlashMyLikesRequest = operations['flash/my-likes']['requestBody']['content']['application/json'];
+export type FlashMyLikesResponse = operations['flash/my-likes']['responses']['200']['content']['application/json'];
+export type PingResponse = operations['ping']['responses']['200']['content']['application/json'];
+export type PinnedUsersResponse = operations['pinned-users']['responses']['200']['content']['application/json'];
+export type PromoReadRequest = operations['promo/read']['requestBody']['content']['application/json'];
+export type RolesShowRequest = operations['roles/show']['requestBody']['content']['application/json'];
+export type RolesUsersRequest = operations['roles/users']['requestBody']['content']['application/json'];
+export type RolesNotesRequest = operations['roles/notes']['requestBody']['content']['application/json'];
+export type RolesNotesResponse = operations['roles/notes']['responses']['200']['content']['application/json'];
+export type RequestResetPasswordRequest = operations['request-reset-password']['requestBody']['content']['application/json'];
+export type ResetPasswordRequest = operations['reset-password']['requestBody']['content']['application/json'];
+export type StatsResponse = operations['stats']['responses']['200']['content']['application/json'];
+export type SwShowRegistrationRequest = operations['sw/show-registration']['requestBody']['content']['application/json'];
+export type SwShowRegistrationResponse = operations['sw/show-registration']['responses']['200']['content']['application/json'];
+export type SwUpdateRegistrationRequest = operations['sw/update-registration']['requestBody']['content']['application/json'];
+export type SwUpdateRegistrationResponse = operations['sw/update-registration']['responses']['200']['content']['application/json'];
+export type SwRegisterRequest = operations['sw/register']['requestBody']['content']['application/json'];
+export type SwRegisterResponse = operations['sw/register']['responses']['200']['content']['application/json'];
+export type SwUnregisterRequest = operations['sw/unregister']['requestBody']['content']['application/json'];
+export type TestRequest = operations['test']['requestBody']['content']['application/json'];
+export type UsernameAvailableRequest = operations['username/available']['requestBody']['content']['application/json'];
+export type UsernameAvailableResponse = operations['username/available']['responses']['200']['content']['application/json'];
+export type UsersRequest = operations['users']['requestBody']['content']['application/json'];
+export type UsersResponse = operations['users']['responses']['200']['content']['application/json'];
+export type UsersClipsRequest = operations['users/clips']['requestBody']['content']['application/json'];
+export type UsersClipsResponse = operations['users/clips']['responses']['200']['content']['application/json'];
+export type UsersFollowersRequest = operations['users/followers']['requestBody']['content']['application/json'];
+export type UsersFollowersResponse = operations['users/followers']['responses']['200']['content']['application/json'];
+export type UsersFollowingRequest = operations['users/following']['requestBody']['content']['application/json'];
+export type UsersFollowingResponse = operations['users/following']['responses']['200']['content']['application/json'];
+export type UsersGalleryPostsRequest = operations['users/gallery/posts']['requestBody']['content']['application/json'];
+export type UsersGalleryPostsResponse = operations['users/gallery/posts']['responses']['200']['content']['application/json'];
+export type UsersGetFrequentlyRepliedUsersRequest = operations['users/get-frequently-replied-users']['requestBody']['content']['application/json'];
+export type UsersGetFrequentlyRepliedUsersResponse = operations['users/get-frequently-replied-users']['responses']['200']['content']['application/json'];
+export type UsersFeaturedNotesRequest = operations['users/featured-notes']['requestBody']['content']['application/json'];
+export type UsersFeaturedNotesResponse = operations['users/featured-notes']['responses']['200']['content']['application/json'];
+export type UsersListsCreateRequest = operations['users/lists/create']['requestBody']['content']['application/json'];
+export type UsersListsCreateResponse = operations['users/lists/create']['responses']['200']['content']['application/json'];
+export type UsersListsDeleteRequest = operations['users/lists/delete']['requestBody']['content']['application/json'];
+export type UsersListsListRequest = operations['users/lists/list']['requestBody']['content']['application/json'];
+export type UsersListsListResponse = operations['users/lists/list']['responses']['200']['content']['application/json'];
+export type UsersListsPullRequest = operations['users/lists/pull']['requestBody']['content']['application/json'];
+export type UsersListsPushRequest = operations['users/lists/push']['requestBody']['content']['application/json'];
+export type UsersListsShowRequest = operations['users/lists/show']['requestBody']['content']['application/json'];
+export type UsersListsShowResponse = operations['users/lists/show']['responses']['200']['content']['application/json'];
+export type UsersListsFavoriteRequest = operations['users/lists/favorite']['requestBody']['content']['application/json'];
+export type UsersListsUnfavoriteRequest = operations['users/lists/unfavorite']['requestBody']['content']['application/json'];
+export type UsersListsUpdateRequest = operations['users/lists/update']['requestBody']['content']['application/json'];
+export type UsersListsUpdateResponse = operations['users/lists/update']['responses']['200']['content']['application/json'];
+export type UsersListsCreateFromPublicRequest = operations['users/lists/create-from-public']['requestBody']['content']['application/json'];
+export type UsersListsCreateFromPublicResponse = operations['users/lists/create-from-public']['responses']['200']['content']['application/json'];
+export type UsersListsUpdateMembershipRequest = operations['users/lists/update-membership']['requestBody']['content']['application/json'];
+export type UsersListsGetMembershipsRequest = operations['users/lists/get-memberships']['requestBody']['content']['application/json'];
+export type UsersNotesRequest = operations['users/notes']['requestBody']['content']['application/json'];
+export type UsersNotesResponse = operations['users/notes']['responses']['200']['content']['application/json'];
+export type UsersPagesRequest = operations['users/pages']['requestBody']['content']['application/json'];
+export type UsersPagesResponse = operations['users/pages']['responses']['200']['content']['application/json'];
+export type UsersFlashsRequest = operations['users/flashs']['requestBody']['content']['application/json'];
+export type UsersFlashsResponse = operations['users/flashs']['responses']['200']['content']['application/json'];
+export type UsersReactionsRequest = operations['users/reactions']['requestBody']['content']['application/json'];
+export type UsersReactionsResponse = operations['users/reactions']['responses']['200']['content']['application/json'];
+export type UsersRecommendationRequest = operations['users/recommendation']['requestBody']['content']['application/json'];
+export type UsersRecommendationResponse = operations['users/recommendation']['responses']['200']['content']['application/json'];
+export type UsersRelationRequest = operations['users/relation']['requestBody']['content']['application/json'];
+export type UsersRelationResponse = operations['users/relation']['responses']['200']['content']['application/json'];
+export type UsersReportAbuseRequest = operations['users/report-abuse']['requestBody']['content']['application/json'];
+export type UsersSearchByUsernameAndHostRequest = operations['users/search-by-username-and-host']['requestBody']['content']['application/json'];
+export type UsersSearchByUsernameAndHostResponse = operations['users/search-by-username-and-host']['responses']['200']['content']['application/json'];
+export type UsersSearchRequest = operations['users/search']['requestBody']['content']['application/json'];
+export type UsersSearchResponse = operations['users/search']['responses']['200']['content']['application/json'];
+export type UsersShowRequest = operations['users/show']['requestBody']['content']['application/json'];
+export type UsersShowResponse = operations['users/show']['responses']['200']['content']['application/json'];
+export type UsersAchievementsRequest = operations['users/achievements']['requestBody']['content']['application/json'];
+export type UsersUpdateMemoRequest = operations['users/update-memo']['requestBody']['content']['application/json'];
+export type FetchRssRequest = operations['fetch-rss']['requestBody']['content']['application/json'];
+export type FetchExternalResourcesRequest = operations['fetch-external-resources']['requestBody']['content']['application/json'];
+export type RetentionResponse = operations['retention']['responses']['200']['content']['application/json'];
diff --git a/packages/misskey-js/src/autogen/models.ts b/packages/misskey-js/src/autogen/models.ts
new file mode 100644
index 0000000000..bc7ab1f3b9
--- /dev/null
+++ b/packages/misskey-js/src/autogen/models.ts
@@ -0,0 +1,39 @@
+/*
+ * version: 2023.11.1
+ * generatedAt: 2023-11-27T02:24:45.109Z
+ */
+
+import { components } from './types.js';
+export type Error = components['schemas']['Error'];
+export type UserLite = components['schemas']['UserLite'];
+export type UserDetailedNotMeOnly = components['schemas']['UserDetailedNotMeOnly'];
+export type MeDetailedOnly = components['schemas']['MeDetailedOnly'];
+export type UserDetailedNotMe = components['schemas']['UserDetailedNotMe'];
+export type MeDetailed = components['schemas']['MeDetailed'];
+export type UserDetailed = components['schemas']['UserDetailed'];
+export type User = components['schemas']['User'];
+export type UserList = components['schemas']['UserList'];
+export type Announcement = components['schemas']['Announcement'];
+export type App = components['schemas']['App'];
+export type Note = components['schemas']['Note'];
+export type NoteReaction = components['schemas']['NoteReaction'];
+export type NoteFavorite = components['schemas']['NoteFavorite'];
+export type Notification = components['schemas']['Notification'];
+export type DriveFile = components['schemas']['DriveFile'];
+export type DriveFolder = components['schemas']['DriveFolder'];
+export type Following = components['schemas']['Following'];
+export type Muting = components['schemas']['Muting'];
+export type RenoteMuting = components['schemas']['RenoteMuting'];
+export type Blocking = components['schemas']['Blocking'];
+export type Hashtag = components['schemas']['Hashtag'];
+export type InviteCode = components['schemas']['InviteCode'];
+export type Page = components['schemas']['Page'];
+export type Channel = components['schemas']['Channel'];
+export type QueueCount = components['schemas']['QueueCount'];
+export type Antenna = components['schemas']['Antenna'];
+export type Clip = components['schemas']['Clip'];
+export type FederationInstance = components['schemas']['FederationInstance'];
+export type GalleryPost = components['schemas']['GalleryPost'];
+export type EmojiSimple = components['schemas']['EmojiSimple'];
+export type EmojiDetailed = components['schemas']['EmojiDetailed'];
+export type Flash = components['schemas']['Flash'];
diff --git a/packages/misskey-js/src/autogen/types.ts b/packages/misskey-js/src/autogen/types.ts
new file mode 100644
index 0000000000..c7f5c6c82d
--- /dev/null
+++ b/packages/misskey-js/src/autogen/types.ts
@@ -0,0 +1,22560 @@
+/* eslint @typescript-eslint/naming-convention: 0 */
+/* eslint @typescript-eslint/no-explicit-any: 0 */
+
+/*
+ * version: 2023.11.1
+ * generatedAt: 2023-11-27T02:24:44.994Z
+ */
+
+/**
+ * This file was auto-generated by openapi-typescript.
+ * Do not make direct changes to the file.
+ */
+
+/** OneOf type helpers */
+type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
+type XOR<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
+type OneOf<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR<A, B>, ...Rest]> : never;
+
+export type paths = {
+  '/admin/meta': {
+    /**
+     * admin/meta
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/meta'];
+  };
+  '/admin/abuse-user-reports': {
+    /**
+     * admin/abuse-user-reports
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/abuse-user-reports'];
+  };
+  '/admin/accounts/create': {
+    /**
+     * admin/accounts/create
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['admin/accounts/create'];
+  };
+  '/admin/accounts/delete': {
+    /**
+     * admin/accounts/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/accounts/delete'];
+  };
+  '/admin/accounts/find-by-email': {
+    /**
+     * admin/accounts/find-by-email
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/accounts/find-by-email'];
+  };
+  '/admin/ad/create': {
+    /**
+     * admin/ad/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/ad/create'];
+  };
+  '/admin/ad/delete': {
+    /**
+     * admin/ad/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/ad/delete'];
+  };
+  '/admin/ad/list': {
+    /**
+     * admin/ad/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/ad/list'];
+  };
+  '/admin/ad/update': {
+    /**
+     * admin/ad/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/ad/update'];
+  };
+  '/admin/announcements/create': {
+    /**
+     * admin/announcements/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/announcements/create'];
+  };
+  '/admin/announcements/delete': {
+    /**
+     * admin/announcements/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/announcements/delete'];
+  };
+  '/admin/announcements/list': {
+    /**
+     * admin/announcements/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/announcements/list'];
+  };
+  '/admin/announcements/update': {
+    /**
+     * admin/announcements/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/announcements/update'];
+  };
+  '/admin/avatar-decorations/create': {
+    /**
+     * admin/avatar-decorations/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/avatar-decorations/create'];
+  };
+  '/admin/avatar-decorations/delete': {
+    /**
+     * admin/avatar-decorations/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/avatar-decorations/delete'];
+  };
+  '/admin/avatar-decorations/list': {
+    /**
+     * admin/avatar-decorations/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/avatar-decorations/list'];
+  };
+  '/admin/avatar-decorations/update': {
+    /**
+     * admin/avatar-decorations/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/avatar-decorations/update'];
+  };
+  '/admin/delete-all-files-of-a-user': {
+    /**
+     * admin/delete-all-files-of-a-user
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/delete-all-files-of-a-user'];
+  };
+  '/admin/unset-user-avatar': {
+    /**
+     * admin/unset-user-avatar
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/unset-user-avatar'];
+  };
+  '/admin/unset-user-banner': {
+    /**
+     * admin/unset-user-banner
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/unset-user-banner'];
+  };
+  '/admin/drive/clean-remote-files': {
+    /**
+     * admin/drive/clean-remote-files
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/drive/clean-remote-files'];
+  };
+  '/admin/drive/cleanup': {
+    /**
+     * admin/drive/cleanup
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/drive/cleanup'];
+  };
+  '/admin/drive/files': {
+    /**
+     * admin/drive/files
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/drive/files'];
+  };
+  '/admin/drive/show-file': {
+    /**
+     * admin/drive/show-file
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/drive/show-file'];
+  };
+  '/admin/emoji/add-aliases-bulk': {
+    /**
+     * admin/emoji/add-aliases-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/add-aliases-bulk'];
+  };
+  '/admin/emoji/add': {
+    /**
+     * admin/emoji/add
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/add'];
+  };
+  '/admin/emoji/copy': {
+    /**
+     * admin/emoji/copy
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/copy'];
+  };
+  '/admin/emoji/delete-bulk': {
+    /**
+     * admin/emoji/delete-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/delete-bulk'];
+  };
+  '/admin/emoji/delete': {
+    /**
+     * admin/emoji/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/delete'];
+  };
+  '/admin/emoji/list-remote': {
+    /**
+     * admin/emoji/list-remote
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/list-remote'];
+  };
+  '/admin/emoji/list': {
+    /**
+     * admin/emoji/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/list'];
+  };
+  '/admin/emoji/remove-aliases-bulk': {
+    /**
+     * admin/emoji/remove-aliases-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/remove-aliases-bulk'];
+  };
+  '/admin/emoji/set-aliases-bulk': {
+    /**
+     * admin/emoji/set-aliases-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/set-aliases-bulk'];
+  };
+  '/admin/emoji/set-category-bulk': {
+    /**
+     * admin/emoji/set-category-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/set-category-bulk'];
+  };
+  '/admin/emoji/set-license-bulk': {
+    /**
+     * admin/emoji/set-license-bulk
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/set-license-bulk'];
+  };
+  '/admin/emoji/update': {
+    /**
+     * admin/emoji/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/emoji/update'];
+  };
+  '/admin/federation/delete-all-files': {
+    /**
+     * admin/federation/delete-all-files
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/federation/delete-all-files'];
+  };
+  '/admin/federation/refresh-remote-instance-metadata': {
+    /**
+     * admin/federation/refresh-remote-instance-metadata
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/federation/refresh-remote-instance-metadata'];
+  };
+  '/admin/federation/remove-all-following': {
+    /**
+     * admin/federation/remove-all-following
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/federation/remove-all-following'];
+  };
+  '/admin/federation/update-instance': {
+    /**
+     * admin/federation/update-instance
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/federation/update-instance'];
+  };
+  '/admin/get-index-stats': {
+    /**
+     * admin/get-index-stats
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/get-index-stats'];
+  };
+  '/admin/get-table-stats': {
+    /**
+     * admin/get-table-stats
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/get-table-stats'];
+  };
+  '/admin/get-user-ips': {
+    /**
+     * admin/get-user-ips
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/get-user-ips'];
+  };
+  '/admin/invite/create': {
+    /**
+     * admin/invite/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/invite/create'];
+  };
+  '/admin/invite/list': {
+    /**
+     * admin/invite/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/invite/list'];
+  };
+  '/admin/promo/create': {
+    /**
+     * admin/promo/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/promo/create'];
+  };
+  '/admin/queue/clear': {
+    /**
+     * admin/queue/clear
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/queue/clear'];
+  };
+  '/admin/queue/deliver-delayed': {
+    /**
+     * admin/queue/deliver-delayed
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/queue/deliver-delayed'];
+  };
+  '/admin/queue/inbox-delayed': {
+    /**
+     * admin/queue/inbox-delayed
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/queue/inbox-delayed'];
+  };
+  '/admin/queue/promote': {
+    /**
+     * admin/queue/promote
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/queue/promote'];
+  };
+  '/admin/queue/stats': {
+    /**
+     * admin/queue/stats
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/queue/stats'];
+  };
+  '/admin/relays/add': {
+    /**
+     * admin/relays/add
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/relays/add'];
+  };
+  '/admin/relays/list': {
+    /**
+     * admin/relays/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/relays/list'];
+  };
+  '/admin/relays/remove': {
+    /**
+     * admin/relays/remove
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/relays/remove'];
+  };
+  '/admin/reset-password': {
+    /**
+     * admin/reset-password
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/reset-password'];
+  };
+  '/admin/resolve-abuse-user-report': {
+    /**
+     * admin/resolve-abuse-user-report
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/resolve-abuse-user-report'];
+  };
+  '/admin/send-email': {
+    /**
+     * admin/send-email
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/send-email'];
+  };
+  '/admin/server-info': {
+    /**
+     * admin/server-info
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/server-info'];
+  };
+  '/admin/show-moderation-logs': {
+    /**
+     * admin/show-moderation-logs
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/show-moderation-logs'];
+  };
+  '/admin/show-user': {
+    /**
+     * admin/show-user
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/show-user'];
+  };
+  '/admin/show-users': {
+    /**
+     * admin/show-users
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/show-users'];
+  };
+  '/admin/suspend-user': {
+    /**
+     * admin/suspend-user
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/suspend-user'];
+  };
+  '/admin/unsuspend-user': {
+    /**
+     * admin/unsuspend-user
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/unsuspend-user'];
+  };
+  '/admin/update-meta': {
+    /**
+     * admin/update-meta
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/update-meta'];
+  };
+  '/admin/delete-account': {
+    /**
+     * admin/delete-account
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/delete-account'];
+  };
+  '/admin/update-user-note': {
+    /**
+     * admin/update-user-note
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/update-user-note'];
+  };
+  '/admin/roles/create': {
+    /**
+     * admin/roles/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/create'];
+  };
+  '/admin/roles/delete': {
+    /**
+     * admin/roles/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/delete'];
+  };
+  '/admin/roles/list': {
+    /**
+     * admin/roles/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/list'];
+  };
+  '/admin/roles/show': {
+    /**
+     * admin/roles/show
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/show'];
+  };
+  '/admin/roles/update': {
+    /**
+     * admin/roles/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/update'];
+  };
+  '/admin/roles/assign': {
+    /**
+     * admin/roles/assign
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/assign'];
+  };
+  '/admin/roles/unassign': {
+    /**
+     * admin/roles/unassign
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/unassign'];
+  };
+  '/admin/roles/update-default-policies': {
+    /**
+     * admin/roles/update-default-policies
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['admin/roles/update-default-policies'];
+  };
+  '/admin/roles/users': {
+    /**
+     * admin/roles/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['admin/roles/users'];
+  };
+  '/announcements': {
+    /**
+     * announcements
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['announcements'];
+  };
+  '/antennas/create': {
+    /**
+     * antennas/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['antennas/create'];
+  };
+  '/antennas/delete': {
+    /**
+     * antennas/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['antennas/delete'];
+  };
+  '/antennas/list': {
+    /**
+     * antennas/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['antennas/list'];
+  };
+  '/antennas/notes': {
+    /**
+     * antennas/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['antennas/notes'];
+  };
+  '/antennas/show': {
+    /**
+     * antennas/show
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['antennas/show'];
+  };
+  '/antennas/update': {
+    /**
+     * antennas/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['antennas/update'];
+  };
+  '/ap/get': {
+    /**
+     * ap/get
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['ap/get'];
+  };
+  '/ap/show': {
+    /**
+     * ap/show
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['ap/show'];
+  };
+  '/app/create': {
+    /**
+     * app/create
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['app/create'];
+  };
+  '/app/show': {
+    /**
+     * app/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['app/show'];
+  };
+  '/auth/session/generate': {
+    /**
+     * auth/session/generate
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['auth/session/generate'];
+  };
+  '/auth/session/show': {
+    /**
+     * auth/session/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['auth/session/show'];
+  };
+  '/auth/session/userkey': {
+    /**
+     * auth/session/userkey
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['auth/session/userkey'];
+  };
+  '/blocking/create': {
+    /**
+     * blocking/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:blocks*
+     */
+    post: operations['blocking/create'];
+  };
+  '/blocking/delete': {
+    /**
+     * blocking/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:blocks*
+     */
+    post: operations['blocking/delete'];
+  };
+  '/blocking/list': {
+    /**
+     * blocking/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:blocks*
+     */
+    post: operations['blocking/list'];
+  };
+  '/channels/create': {
+    /**
+     * channels/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/create'];
+  };
+  '/channels/featured': {
+    /**
+     * channels/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['channels/featured'];
+  };
+  '/channels/follow': {
+    /**
+     * channels/follow
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/follow'];
+  };
+  '/channels/followed': {
+    /**
+     * channels/followed
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:channels*
+     */
+    post: operations['channels/followed'];
+  };
+  '/channels/owned': {
+    /**
+     * channels/owned
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:channels*
+     */
+    post: operations['channels/owned'];
+  };
+  '/channels/show': {
+    /**
+     * channels/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['channels/show'];
+  };
+  '/channels/timeline': {
+    /**
+     * channels/timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['channels/timeline'];
+  };
+  '/channels/unfollow': {
+    /**
+     * channels/unfollow
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/unfollow'];
+  };
+  '/channels/update': {
+    /**
+     * channels/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/update'];
+  };
+  '/channels/favorite': {
+    /**
+     * channels/favorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/favorite'];
+  };
+  '/channels/unfavorite': {
+    /**
+     * channels/unfavorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:channels*
+     */
+    post: operations['channels/unfavorite'];
+  };
+  '/channels/my-favorites': {
+    /**
+     * channels/my-favorites
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:channels*
+     */
+    post: operations['channels/my-favorites'];
+  };
+  '/channels/search': {
+    /**
+     * channels/search
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['channels/search'];
+  };
+  '/charts/active-users': {
+    /**
+     * charts/active-users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/active-users'];
+    /**
+     * charts/active-users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/active-users'];
+  };
+  '/charts/ap-request': {
+    /**
+     * charts/ap-request
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/ap-request'];
+    /**
+     * charts/ap-request
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/ap-request'];
+  };
+  '/charts/drive': {
+    /**
+     * charts/drive
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/drive'];
+    /**
+     * charts/drive
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/drive'];
+  };
+  '/charts/federation': {
+    /**
+     * charts/federation
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/federation'];
+    /**
+     * charts/federation
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/federation'];
+  };
+  '/charts/instance': {
+    /**
+     * charts/instance
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/instance'];
+    /**
+     * charts/instance
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/instance'];
+  };
+  '/charts/notes': {
+    /**
+     * charts/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/notes'];
+    /**
+     * charts/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/notes'];
+  };
+  '/charts/user/drive': {
+    /**
+     * charts/user/drive
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/user/drive'];
+    /**
+     * charts/user/drive
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/user/drive'];
+  };
+  '/charts/user/following': {
+    /**
+     * charts/user/following
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/user/following'];
+    /**
+     * charts/user/following
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/user/following'];
+  };
+  '/charts/user/notes': {
+    /**
+     * charts/user/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/user/notes'];
+    /**
+     * charts/user/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/user/notes'];
+  };
+  '/charts/user/pv': {
+    /**
+     * charts/user/pv
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/user/pv'];
+    /**
+     * charts/user/pv
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/user/pv'];
+  };
+  '/charts/user/reactions': {
+    /**
+     * charts/user/reactions
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/user/reactions'];
+    /**
+     * charts/user/reactions
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/user/reactions'];
+  };
+  '/charts/users': {
+    /**
+     * charts/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['charts/users'];
+    /**
+     * charts/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['charts/users'];
+  };
+  '/clips/add-note': {
+    /**
+     * clips/add-note
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['clips/add-note'];
+  };
+  '/clips/remove-note': {
+    /**
+     * clips/remove-note
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['clips/remove-note'];
+  };
+  '/clips/create': {
+    /**
+     * clips/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['clips/create'];
+  };
+  '/clips/delete': {
+    /**
+     * clips/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['clips/delete'];
+  };
+  '/clips/list': {
+    /**
+     * clips/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['clips/list'];
+  };
+  '/clips/notes': {
+    /**
+     * clips/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No* / **Permission**: *read:account*
+     */
+    post: operations['clips/notes'];
+  };
+  '/clips/show': {
+    /**
+     * clips/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No* / **Permission**: *read:account*
+     */
+    post: operations['clips/show'];
+  };
+  '/clips/update': {
+    /**
+     * clips/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['clips/update'];
+  };
+  '/clips/favorite': {
+    /**
+     * clips/favorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:clip-favorite*
+     */
+    post: operations['clips/favorite'];
+  };
+  '/clips/unfavorite': {
+    /**
+     * clips/unfavorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:clip-favorite*
+     */
+    post: operations['clips/unfavorite'];
+  };
+  '/clips/my-favorites': {
+    /**
+     * clips/my-favorites
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:clip-favorite*
+     */
+    post: operations['clips/my-favorites'];
+  };
+  '/drive': {
+    /**
+     * drive
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive'];
+  };
+  '/drive/files': {
+    /**
+     * drive/files
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files'];
+  };
+  '/drive/files/attached-notes': {
+    /**
+     * drive/files/attached-notes
+     * @description Find the notes to which the given file is attached.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files/attached-notes'];
+  };
+  '/drive/files/check-existence': {
+    /**
+     * drive/files/check-existence
+     * @description Check if a given file exists.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files/check-existence'];
+  };
+  '/drive/files/create': {
+    /**
+     * drive/files/create
+     * @description Upload a new drive file.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/files/create'];
+  };
+  '/drive/files/delete': {
+    /**
+     * drive/files/delete
+     * @description Delete an existing drive file.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/files/delete'];
+  };
+  '/drive/files/find-by-hash': {
+    /**
+     * drive/files/find-by-hash
+     * @description Search for a drive file by a hash of the contents.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files/find-by-hash'];
+  };
+  '/drive/files/find': {
+    /**
+     * drive/files/find
+     * @description Search for a drive file by the given parameters.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files/find'];
+  };
+  '/drive/files/show': {
+    /**
+     * drive/files/show
+     * @description Show the properties of a drive file.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/files/show'];
+  };
+  '/drive/files/update': {
+    /**
+     * drive/files/update
+     * @description Update the properties of a drive file.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/files/update'];
+  };
+  '/drive/files/upload-from-url': {
+    /**
+     * drive/files/upload-from-url
+     * @description Request the server to download a new drive file from the specified URL.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/files/upload-from-url'];
+  };
+  '/drive/folders': {
+    /**
+     * drive/folders
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/folders'];
+  };
+  '/drive/folders/create': {
+    /**
+     * drive/folders/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/folders/create'];
+  };
+  '/drive/folders/delete': {
+    /**
+     * drive/folders/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/folders/delete'];
+  };
+  '/drive/folders/find': {
+    /**
+     * drive/folders/find
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/folders/find'];
+  };
+  '/drive/folders/show': {
+    /**
+     * drive/folders/show
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/folders/show'];
+  };
+  '/drive/folders/update': {
+    /**
+     * drive/folders/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:drive*
+     */
+    post: operations['drive/folders/update'];
+  };
+  '/drive/stream': {
+    /**
+     * drive/stream
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:drive*
+     */
+    post: operations['drive/stream'];
+  };
+  '/email-address/available': {
+    /**
+     * email-address/available
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['email-address/available'];
+  };
+  '/endpoint': {
+    /**
+     * endpoint
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['endpoint'];
+  };
+  '/endpoints': {
+    /**
+     * endpoints
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['endpoints'];
+  };
+  '/federation/followers': {
+    /**
+     * federation/followers
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/followers'];
+  };
+  '/federation/following': {
+    /**
+     * federation/following
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/following'];
+  };
+  '/federation/instances': {
+    /**
+     * federation/instances
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['federation/instances'];
+    /**
+     * federation/instances
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/instances'];
+  };
+  '/federation/show-instance': {
+    /**
+     * federation/show-instance
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/show-instance'];
+  };
+  '/federation/update-remote-user': {
+    /**
+     * federation/update-remote-user
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['federation/update-remote-user'];
+  };
+  '/federation/users': {
+    /**
+     * federation/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/users'];
+  };
+  '/federation/stats': {
+    /**
+     * federation/stats
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['federation/stats'];
+    /**
+     * federation/stats
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['federation/stats'];
+  };
+  '/following/create': {
+    /**
+     * following/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/create'];
+  };
+  '/following/delete': {
+    /**
+     * following/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/delete'];
+  };
+  '/following/update': {
+    /**
+     * following/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/update'];
+  };
+  '/following/update-all': {
+    /**
+     * following/update-all
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/update-all'];
+  };
+  '/following/invalidate': {
+    /**
+     * following/invalidate
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/invalidate'];
+  };
+  '/following/requests/accept': {
+    /**
+     * following/requests/accept
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/requests/accept'];
+  };
+  '/following/requests/cancel': {
+    /**
+     * following/requests/cancel
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/requests/cancel'];
+  };
+  '/following/requests/list': {
+    /**
+     * following/requests/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:following*
+     */
+    post: operations['following/requests/list'];
+  };
+  '/following/requests/reject': {
+    /**
+     * following/requests/reject
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:following*
+     */
+    post: operations['following/requests/reject'];
+  };
+  '/gallery/featured': {
+    /**
+     * gallery/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['gallery/featured'];
+  };
+  '/gallery/popular': {
+    /**
+     * gallery/popular
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['gallery/popular'];
+  };
+  '/gallery/posts': {
+    /**
+     * gallery/posts
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['gallery/posts'];
+  };
+  '/gallery/posts/create': {
+    /**
+     * gallery/posts/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:gallery*
+     */
+    post: operations['gallery/posts/create'];
+  };
+  '/gallery/posts/delete': {
+    /**
+     * gallery/posts/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:gallery*
+     */
+    post: operations['gallery/posts/delete'];
+  };
+  '/gallery/posts/like': {
+    /**
+     * gallery/posts/like
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:gallery-likes*
+     */
+    post: operations['gallery/posts/like'];
+  };
+  '/gallery/posts/show': {
+    /**
+     * gallery/posts/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['gallery/posts/show'];
+  };
+  '/gallery/posts/unlike': {
+    /**
+     * gallery/posts/unlike
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:gallery-likes*
+     */
+    post: operations['gallery/posts/unlike'];
+  };
+  '/gallery/posts/update': {
+    /**
+     * gallery/posts/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:gallery*
+     */
+    post: operations['gallery/posts/update'];
+  };
+  '/get-online-users-count': {
+    /**
+     * get-online-users-count
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['get-online-users-count'];
+    /**
+     * get-online-users-count
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['get-online-users-count'];
+  };
+  '/get-avatar-decorations': {
+    /**
+     * get-avatar-decorations
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['get-avatar-decorations'];
+  };
+  '/hashtags/list': {
+    /**
+     * hashtags/list
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['hashtags/list'];
+  };
+  '/hashtags/search': {
+    /**
+     * hashtags/search
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['hashtags/search'];
+  };
+  '/hashtags/show': {
+    /**
+     * hashtags/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['hashtags/show'];
+  };
+  '/hashtags/trend': {
+    /**
+     * hashtags/trend
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['hashtags/trend'];
+    /**
+     * hashtags/trend
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['hashtags/trend'];
+  };
+  '/hashtags/users': {
+    /**
+     * hashtags/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['hashtags/users'];
+  };
+  '/i': {
+    /**
+     * i
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i'];
+  };
+  '/i/claim-achievement': {
+    /**
+     * i/claim-achievement
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/claim-achievement'];
+  };
+  '/i/favorites': {
+    /**
+     * i/favorites
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:favorites*
+     */
+    post: operations['i/favorites'];
+  };
+  '/i/gallery/likes': {
+    /**
+     * i/gallery/likes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:gallery-likes*
+     */
+    post: operations['i/gallery/likes'];
+  };
+  '/i/gallery/posts': {
+    /**
+     * i/gallery/posts
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:gallery*
+     */
+    post: operations['i/gallery/posts'];
+  };
+  '/i/notifications': {
+    /**
+     * i/notifications
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:notifications*
+     */
+    post: operations['i/notifications'];
+  };
+  '/i/notifications-grouped': {
+    /**
+     * i/notifications-grouped
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:notifications*
+     */
+    post: operations['i/notifications-grouped'];
+  };
+  '/i/page-likes': {
+    /**
+     * i/page-likes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:page-likes*
+     */
+    post: operations['i/page-likes'];
+  };
+  '/i/pages': {
+    /**
+     * i/pages
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:pages*
+     */
+    post: operations['i/pages'];
+  };
+  '/i/pin': {
+    /**
+     * i/pin
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/pin'];
+  };
+  '/i/read-all-unread-notes': {
+    /**
+     * i/read-all-unread-notes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/read-all-unread-notes'];
+  };
+  '/i/read-announcement': {
+    /**
+     * i/read-announcement
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/read-announcement'];
+  };
+  '/i/registry/get-all': {
+    /**
+     * i/registry/get-all
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/get-all'];
+  };
+  '/i/registry/get-detail': {
+    /**
+     * i/registry/get-detail
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/get-detail'];
+  };
+  '/i/registry/get': {
+    /**
+     * i/registry/get
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/get'];
+  };
+  '/i/registry/keys-with-type': {
+    /**
+     * i/registry/keys-with-type
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/keys-with-type'];
+  };
+  '/i/registry/keys': {
+    /**
+     * i/registry/keys
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/keys'];
+  };
+  '/i/registry/remove': {
+    /**
+     * i/registry/remove
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/remove'];
+  };
+  '/i/registry/set': {
+    /**
+     * i/registry/set
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['i/registry/set'];
+  };
+  '/i/unpin': {
+    /**
+     * i/unpin
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/unpin'];
+  };
+  '/i/update': {
+    /**
+     * i/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/update'];
+  };
+  '/i/webhooks/create': {
+    /**
+     * i/webhooks/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/webhooks/create'];
+  };
+  '/i/webhooks/list': {
+    /**
+     * i/webhooks/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['i/webhooks/list'];
+  };
+  '/i/webhooks/show': {
+    /**
+     * i/webhooks/show
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['i/webhooks/show'];
+  };
+  '/i/webhooks/update': {
+    /**
+     * i/webhooks/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/webhooks/update'];
+  };
+  '/i/webhooks/delete': {
+    /**
+     * i/webhooks/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['i/webhooks/delete'];
+  };
+  '/invite/create': {
+    /**
+     * invite/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['invite/create'];
+  };
+  '/invite/delete': {
+    /**
+     * invite/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['invite/delete'];
+  };
+  '/invite/list': {
+    /**
+     * invite/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['invite/list'];
+  };
+  '/invite/limit': {
+    /**
+     * invite/limit
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['invite/limit'];
+  };
+  '/meta': {
+    /**
+     * meta
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['meta'];
+  };
+  '/emojis': {
+    /**
+     * emojis
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['emojis'];
+    /**
+     * emojis
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['emojis'];
+  };
+  '/emoji': {
+    /**
+     * emoji
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['emoji'];
+    /**
+     * emoji
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['emoji'];
+  };
+  '/mute/create': {
+    /**
+     * mute/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:mutes*
+     */
+    post: operations['mute/create'];
+  };
+  '/mute/delete': {
+    /**
+     * mute/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:mutes*
+     */
+    post: operations['mute/delete'];
+  };
+  '/mute/list': {
+    /**
+     * mute/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:mutes*
+     */
+    post: operations['mute/list'];
+  };
+  '/renote-mute/create': {
+    /**
+     * renote-mute/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:mutes*
+     */
+    post: operations['renote-mute/create'];
+  };
+  '/renote-mute/delete': {
+    /**
+     * renote-mute/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:mutes*
+     */
+    post: operations['renote-mute/delete'];
+  };
+  '/renote-mute/list': {
+    /**
+     * renote-mute/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:mutes*
+     */
+    post: operations['renote-mute/list'];
+  };
+  '/my/apps': {
+    /**
+     * my/apps
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['my/apps'];
+  };
+  '/notes': {
+    /**
+     * notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes'];
+  };
+  '/notes/children': {
+    /**
+     * notes/children
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/children'];
+  };
+  '/notes/clips': {
+    /**
+     * notes/clips
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/clips'];
+  };
+  '/notes/conversation': {
+    /**
+     * notes/conversation
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/conversation'];
+  };
+  '/notes/create': {
+    /**
+     * notes/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notes*
+     */
+    post: operations['notes/create'];
+  };
+  '/notes/delete': {
+    /**
+     * notes/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notes*
+     */
+    post: operations['notes/delete'];
+  };
+  '/notes/favorites/create': {
+    /**
+     * notes/favorites/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:favorites*
+     */
+    post: operations['notes/favorites/create'];
+  };
+  '/notes/favorites/delete': {
+    /**
+     * notes/favorites/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:favorites*
+     */
+    post: operations['notes/favorites/delete'];
+  };
+  '/notes/featured': {
+    /**
+     * notes/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['notes/featured'];
+    /**
+     * notes/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/featured'];
+  };
+  '/notes/global-timeline': {
+    /**
+     * notes/global-timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/global-timeline'];
+  };
+  '/notes/hybrid-timeline': {
+    /**
+     * notes/hybrid-timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/hybrid-timeline'];
+  };
+  '/notes/local-timeline': {
+    /**
+     * notes/local-timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/local-timeline'];
+  };
+  '/notes/mentions': {
+    /**
+     * notes/mentions
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/mentions'];
+  };
+  '/notes/polls/recommendation': {
+    /**
+     * notes/polls/recommendation
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/polls/recommendation'];
+  };
+  '/notes/polls/vote': {
+    /**
+     * notes/polls/vote
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:votes*
+     */
+    post: operations['notes/polls/vote'];
+  };
+  '/notes/reactions': {
+    /**
+     * notes/reactions
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['notes/reactions'];
+    /**
+     * notes/reactions
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/reactions'];
+  };
+  '/notes/reactions/create': {
+    /**
+     * notes/reactions/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:reactions*
+     */
+    post: operations['notes/reactions/create'];
+  };
+  '/notes/reactions/delete': {
+    /**
+     * notes/reactions/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:reactions*
+     */
+    post: operations['notes/reactions/delete'];
+  };
+  '/notes/renotes': {
+    /**
+     * notes/renotes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/renotes'];
+  };
+  '/notes/replies': {
+    /**
+     * notes/replies
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/replies'];
+  };
+  '/notes/search-by-tag': {
+    /**
+     * notes/search-by-tag
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/search-by-tag'];
+  };
+  '/notes/search': {
+    /**
+     * notes/search
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/search'];
+  };
+  '/notes/show': {
+    /**
+     * notes/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['notes/show'];
+  };
+  '/notes/state': {
+    /**
+     * notes/state
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/state'];
+  };
+  '/notes/thread-muting/create': {
+    /**
+     * notes/thread-muting/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['notes/thread-muting/create'];
+  };
+  '/notes/thread-muting/delete': {
+    /**
+     * notes/thread-muting/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['notes/thread-muting/delete'];
+  };
+  '/notes/timeline': {
+    /**
+     * notes/timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/timeline'];
+  };
+  '/notes/translate': {
+    /**
+     * notes/translate
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/translate'];
+  };
+  '/notes/unrenote': {
+    /**
+     * notes/unrenote
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notes*
+     */
+    post: operations['notes/unrenote'];
+  };
+  '/notes/user-list-timeline': {
+    /**
+     * notes/user-list-timeline
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['notes/user-list-timeline'];
+  };
+  '/notifications/create': {
+    /**
+     * notifications/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notifications*
+     */
+    post: operations['notifications/create'];
+  };
+  '/notifications/mark-all-as-read': {
+    /**
+     * notifications/mark-all-as-read
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notifications*
+     */
+    post: operations['notifications/mark-all-as-read'];
+  };
+  '/notifications/test-notification': {
+    /**
+     * notifications/test-notification
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:notifications*
+     */
+    post: operations['notifications/test-notification'];
+  };
+  '/pages/create': {
+    /**
+     * pages/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:pages*
+     */
+    post: operations['pages/create'];
+  };
+  '/pages/delete': {
+    /**
+     * pages/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:pages*
+     */
+    post: operations['pages/delete'];
+  };
+  '/pages/featured': {
+    /**
+     * pages/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['pages/featured'];
+  };
+  '/pages/like': {
+    /**
+     * pages/like
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:page-likes*
+     */
+    post: operations['pages/like'];
+  };
+  '/pages/show': {
+    /**
+     * pages/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['pages/show'];
+  };
+  '/pages/unlike': {
+    /**
+     * pages/unlike
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:page-likes*
+     */
+    post: operations['pages/unlike'];
+  };
+  '/pages/update': {
+    /**
+     * pages/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:pages*
+     */
+    post: operations['pages/update'];
+  };
+  '/flash/create': {
+    /**
+     * flash/create
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:flash*
+     */
+    post: operations['flash/create'];
+  };
+  '/flash/delete': {
+    /**
+     * flash/delete
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:flash*
+     */
+    post: operations['flash/delete'];
+  };
+  '/flash/featured': {
+    /**
+     * flash/featured
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['flash/featured'];
+  };
+  '/flash/like': {
+    /**
+     * flash/like
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:flash-likes*
+     */
+    post: operations['flash/like'];
+  };
+  '/flash/show': {
+    /**
+     * flash/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['flash/show'];
+  };
+  '/flash/unlike': {
+    /**
+     * flash/unlike
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:flash-likes*
+     */
+    post: operations['flash/unlike'];
+  };
+  '/flash/update': {
+    /**
+     * flash/update
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:flash*
+     */
+    post: operations['flash/update'];
+  };
+  '/flash/my': {
+    /**
+     * flash/my
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:flash*
+     */
+    post: operations['flash/my'];
+  };
+  '/flash/my-likes': {
+    /**
+     * flash/my-likes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:flash-likes*
+     */
+    post: operations['flash/my-likes'];
+  };
+  '/ping': {
+    /**
+     * ping
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['ping'];
+  };
+  '/pinned-users': {
+    /**
+     * pinned-users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['pinned-users'];
+  };
+  '/promo/read': {
+    /**
+     * promo/read
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['promo/read'];
+  };
+  '/roles/list': {
+    /**
+     * roles/list
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['roles/list'];
+  };
+  '/roles/show': {
+    /**
+     * roles/show
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['roles/show'];
+  };
+  '/roles/users': {
+    /**
+     * roles/users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['roles/users'];
+  };
+  '/roles/notes': {
+    /**
+     * roles/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['roles/notes'];
+  };
+  '/request-reset-password': {
+    /**
+     * request-reset-password
+     * @description Request a users password to be reset.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['request-reset-password'];
+  };
+  '/reset-db': {
+    /**
+     * reset-db
+     * @description Only available when running with <code>NODE_ENV=testing</code>. Reset the database and flush Redis.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['reset-db'];
+  };
+  '/reset-password': {
+    /**
+     * reset-password
+     * @description Complete the password reset that was previously requested.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['reset-password'];
+  };
+  '/server-info': {
+    /**
+     * server-info
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['server-info'];
+    /**
+     * server-info
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['server-info'];
+  };
+  '/stats': {
+    /**
+     * stats
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['stats'];
+  };
+  '/sw/show-registration': {
+    /**
+     * sw/show-registration
+     * @description Check push notification registration exists.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['sw/show-registration'];
+  };
+  '/sw/update-registration': {
+    /**
+     * sw/update-registration
+     * @description Update push notification registration.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['sw/update-registration'];
+  };
+  '/sw/register': {
+    /**
+     * sw/register
+     * @description Register to receive push notifications.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['sw/register'];
+  };
+  '/sw/unregister': {
+    /**
+     * sw/unregister
+     * @description Unregister from receiving push notifications.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['sw/unregister'];
+  };
+  '/test': {
+    /**
+     * test
+     * @description Endpoint for testing input validation.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['test'];
+  };
+  '/username/available': {
+    /**
+     * username/available
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['username/available'];
+  };
+  '/users': {
+    /**
+     * users
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users'];
+  };
+  '/users/clips': {
+    /**
+     * users/clips
+     * @description Show all clips this user owns.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/clips'];
+  };
+  '/users/followers': {
+    /**
+     * users/followers
+     * @description Show everyone that follows this user.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/followers'];
+  };
+  '/users/following': {
+    /**
+     * users/following
+     * @description Show everyone that this user is following.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/following'];
+  };
+  '/users/gallery/posts': {
+    /**
+     * users/gallery/posts
+     * @description Show all gallery posts by the given user.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/gallery/posts'];
+  };
+  '/users/get-frequently-replied-users': {
+    /**
+     * users/get-frequently-replied-users
+     * @description Get a list of other users that the specified user frequently replies to.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/get-frequently-replied-users'];
+  };
+  '/users/featured-notes': {
+    /**
+     * users/featured-notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['users/featured-notes'];
+    /**
+     * users/featured-notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/featured-notes'];
+  };
+  '/users/lists/create': {
+    /**
+     * users/lists/create
+     * @description Create a new list of users.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/create'];
+  };
+  '/users/lists/delete': {
+    /**
+     * users/lists/delete
+     * @description Delete an existing list of users.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/delete'];
+  };
+  '/users/lists/list': {
+    /**
+     * users/lists/list
+     * @description Show all lists that the authenticated user has created.
+     *
+     * **Credential required**: *No* / **Permission**: *read:account*
+     */
+    post: operations['users/lists/list'];
+  };
+  '/users/lists/pull': {
+    /**
+     * users/lists/pull
+     * @description Remove a user from a list.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/pull'];
+  };
+  '/users/lists/push': {
+    /**
+     * users/lists/push
+     * @description Add a user to an existing list.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/push'];
+  };
+  '/users/lists/show': {
+    /**
+     * users/lists/show
+     * @description Show the properties of a list.
+     *
+     * **Credential required**: *No* / **Permission**: *read:account*
+     */
+    post: operations['users/lists/show'];
+  };
+  '/users/lists/favorite': {
+    /**
+     * users/lists/favorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/lists/favorite'];
+  };
+  '/users/lists/unfavorite': {
+    /**
+     * users/lists/unfavorite
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/lists/unfavorite'];
+  };
+  '/users/lists/update': {
+    /**
+     * users/lists/update
+     * @description Update the properties of a list.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/update'];
+  };
+  '/users/lists/create-from-public': {
+    /**
+     * users/lists/create-from-public
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/lists/create-from-public'];
+  };
+  '/users/lists/update-membership': {
+    /**
+     * users/lists/update-membership
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/lists/update-membership'];
+  };
+  '/users/lists/get-memberships': {
+    /**
+     * users/lists/get-memberships
+     * @description No description provided.
+     *
+     * **Credential required**: *No* / **Permission**: *read:account*
+     */
+    post: operations['users/lists/get-memberships'];
+  };
+  '/users/notes': {
+    /**
+     * users/notes
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/notes'];
+  };
+  '/users/pages': {
+    /**
+     * users/pages
+     * @description Show all pages this user created.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/pages'];
+  };
+  '/users/flashs': {
+    /**
+     * users/flashs
+     * @description Show all flashs this user created.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/flashs'];
+  };
+  '/users/reactions': {
+    /**
+     * users/reactions
+     * @description Show all reactions this user made.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/reactions'];
+  };
+  '/users/recommendation': {
+    /**
+     * users/recommendation
+     * @description Show users that the authenticated user might be interested to follow.
+     *
+     * **Credential required**: *Yes* / **Permission**: *read:account*
+     */
+    post: operations['users/recommendation'];
+  };
+  '/users/relation': {
+    /**
+     * users/relation
+     * @description Show the different kinds of relations between the authenticated user and the specified user(s).
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/relation'];
+  };
+  '/users/report-abuse': {
+    /**
+     * users/report-abuse
+     * @description File a report.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/report-abuse'];
+  };
+  '/users/search-by-username-and-host': {
+    /**
+     * users/search-by-username-and-host
+     * @description Search for a user by username and/or host.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/search-by-username-and-host'];
+  };
+  '/users/search': {
+    /**
+     * users/search
+     * @description Search for users.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/search'];
+  };
+  '/users/show': {
+    /**
+     * users/show
+     * @description Show the properties of a user.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['users/show'];
+  };
+  '/users/achievements': {
+    /**
+     * users/achievements
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['users/achievements'];
+  };
+  '/users/update-memo': {
+    /**
+     * users/update-memo
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes* / **Permission**: *write:account*
+     */
+    post: operations['users/update-memo'];
+  };
+  '/fetch-rss': {
+    /**
+     * fetch-rss
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['fetch-rss'];
+    /**
+     * fetch-rss
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['fetch-rss'];
+  };
+  '/fetch-external-resources': {
+    /**
+     * fetch-external-resources
+     * @description No description provided.
+     *
+     * **Credential required**: *Yes*
+     */
+    post: operations['fetch-external-resources'];
+  };
+  '/retention': {
+    /**
+     * retention
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    get: operations['retention'];
+    /**
+     * retention
+     * @description No description provided.
+     *
+     * **Credential required**: *No*
+     */
+    post: operations['retention'];
+  };
+};
+
+export type webhooks = Record<string, never>;
+
+export type components = {
+  schemas: {
+    Error: {
+      /** @description An error object. */
+      error: {
+        /** @description An error code. Unique within the endpoint. */
+        code: string;
+        /** @description An error message. */
+        message: string;
+        /**
+         * Format: uuid
+         * @description An error ID. This ID is static.
+         */
+        id: string;
+      };
+    };
+    UserLite: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** @example 藍 */
+      name: string | null;
+      /** @example ai */
+      username: string;
+      /**
+       * @description The local host is represented with `null`.
+       * @example misskey.example.com
+       */
+      host: string | null;
+      /** Format: url */
+      avatarUrl: string | null;
+      avatarBlurhash: string | null;
+      avatarDecorations: {
+          /** Format: id */
+          id: string;
+          angle?: number;
+          flipH?: boolean;
+          /** Format: url */
+          url: string;
+        }[];
+      isBot?: boolean;
+      isCat?: boolean;
+      instance?: {
+        name: string | null;
+        softwareName: string | null;
+        softwareVersion: string | null;
+        iconUrl: string | null;
+        faviconUrl: string | null;
+        themeColor: string | null;
+      };
+      emojis: Record<string, never>;
+      /** @enum {string} */
+      onlineStatus: 'unknown' | 'online' | 'active' | 'offline';
+      badgeRoles?: ({
+          name: string;
+          iconUrl: string | null;
+          displayOrder: number;
+        })[];
+    };
+    UserDetailedNotMeOnly: {
+      /** Format: url */
+      url: string | null;
+      /** Format: uri */
+      uri: string | null;
+      /** Format: uri */
+      movedTo: string | null;
+      alsoKnownAs: string[] | null;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      updatedAt: string | null;
+      /** Format: date-time */
+      lastFetchedAt: string | null;
+      /** Format: url */
+      bannerUrl: string | null;
+      bannerBlurhash: string | null;
+      isLocked: boolean;
+      isSilenced: boolean;
+      /** @example false */
+      isSuspended: boolean;
+      /** @example Hi masters, I am Ai! */
+      description: string | null;
+      location: string | null;
+      /** @example 2018-03-12 */
+      birthday: string | null;
+      /** @example ja-JP */
+      lang: string | null;
+      fields: {
+          name: string;
+          value: string;
+        }[];
+      verifiedLinks: string[];
+      followersCount: number;
+      followingCount: number;
+      notesCount: number;
+      pinnedNoteIds: string[];
+      pinnedNotes: components['schemas']['Note'][];
+      pinnedPageId: string | null;
+      pinnedPage: components['schemas']['Page'] | null;
+      publicReactions: boolean;
+      /** @enum {string} */
+      ffVisibility: 'public' | 'followers' | 'private';
+      /** @default false */
+      twoFactorEnabled: boolean;
+      /** @default false */
+      usePasswordLessLogin: boolean;
+      /** @default false */
+      securityKeys: boolean;
+      roles: ({
+          /** Format: id */
+          id: string;
+          name: string;
+          color: string | null;
+          iconUrl: string | null;
+          description: string;
+          isModerator: boolean;
+          isAdministrator: boolean;
+          displayOrder: number;
+        })[];
+      memo: string | null;
+      moderationNote?: string;
+      isFollowing?: boolean;
+      isFollowed?: boolean;
+      hasPendingFollowRequestFromYou?: boolean;
+      hasPendingFollowRequestToYou?: boolean;
+      isBlocking?: boolean;
+      isBlocked?: boolean;
+      isMuted?: boolean;
+      isRenoteMuted?: boolean;
+      notify?: string;
+      withReplies?: boolean;
+    };
+    MeDetailedOnly: {
+      /** Format: id */
+      avatarId: string | null;
+      /** Format: id */
+      bannerId: string | null;
+      isModerator: boolean | null;
+      isAdmin: boolean | null;
+      injectFeaturedNote: boolean;
+      receiveAnnouncementEmail: boolean;
+      alwaysMarkNsfw: boolean;
+      autoSensitive: boolean;
+      carefulBot: boolean;
+      autoAcceptFollowed: boolean;
+      noCrawle: boolean;
+      preventAiLearning: boolean;
+      isExplorable: boolean;
+      isDeleted: boolean;
+      /** @enum {string} */
+      twoFactorBackupCodesStock: 'full' | 'partial' | 'none';
+      hideOnlineStatus: boolean;
+      hasUnreadSpecifiedNotes: boolean;
+      hasUnreadMentions: boolean;
+      hasUnreadAnnouncement: boolean;
+      unreadAnnouncements: components['schemas']['Announcement'][];
+      hasUnreadAntenna: boolean;
+      hasUnreadChannel: boolean;
+      hasUnreadNotification: boolean;
+      hasPendingReceivedFollowRequest: boolean;
+      unreadNotificationsCount: number;
+      mutedWords: string[][];
+      hardMutedWords: string[][];
+      mutedInstances: string[] | null;
+      notificationRecieveConfig: Record<string, never>;
+      emailNotificationTypes: string[];
+      achievements: {
+          name: string;
+          unlockedAt: number;
+        }[];
+      loggedInDays: number;
+      policies: {
+        gtlAvailable: boolean;
+        ltlAvailable: boolean;
+        canPublicNote: boolean;
+        canInvite: boolean;
+        inviteLimit: number;
+        inviteLimitCycle: number;
+        inviteExpirationTime: number;
+        canManageCustomEmojis: boolean;
+        canManageAvatarDecorations: boolean;
+        canSearchNotes: boolean;
+        canUseTranslator: boolean;
+        canHideAds: boolean;
+        driveCapacityMb: number;
+        alwaysMarkNsfw: boolean;
+        pinLimit: number;
+        antennaLimit: number;
+        wordMuteLimit: number;
+        webhookLimit: number;
+        clipLimit: number;
+        noteEachClipsLimit: number;
+        userListLimit: number;
+        userEachUserListsLimit: number;
+        rateLimitFactor: number;
+      };
+      email?: string | null;
+      emailVerified?: boolean | null;
+      securityKeysList?: Record<string, never>[];
+    };
+    UserDetailedNotMe: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly'];
+    MeDetailed: components['schemas']['UserLite'] & components['schemas']['UserDetailedNotMeOnly'] & components['schemas']['MeDetailedOnly'];
+    UserDetailed: components['schemas']['UserDetailedNotMe'] | components['schemas']['MeDetailed'];
+    User: components['schemas']['UserLite'] | components['schemas']['UserDetailed'] | components['schemas']['UserDetailedNotMe'] | components['schemas']['MeDetailed'];
+    UserList: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      name: string;
+      userIds?: string[];
+      isPublic: boolean;
+    };
+    Announcement: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      updatedAt: string | null;
+      text: string;
+      title: string;
+      imageUrl: string | null;
+      icon: string;
+      display: string;
+      needConfirmationToRead: boolean;
+      silence: boolean;
+      forYou: boolean;
+      isRead?: boolean;
+    };
+    App: {
+      id: string;
+      name: string;
+      callbackUrl: string | null;
+      permission: string[];
+      secret?: string;
+      isAuthorized?: boolean;
+    };
+    Note: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      deletedAt?: string | null;
+      text: string | null;
+      cw?: string | null;
+      /** Format: id */
+      userId: string;
+      user: components['schemas']['UserLite'];
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      replyId?: string | null;
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      renoteId?: string | null;
+      reply?: components['schemas']['Note'] | null;
+      renote?: components['schemas']['Note'] | null;
+      isHidden?: boolean;
+      visibility: string;
+      mentions?: string[];
+      visibleUserIds?: string[];
+      fileIds?: string[];
+      files?: components['schemas']['DriveFile'][];
+      tags?: string[];
+      poll?: Record<string, unknown> | null;
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      channelId?: string | null;
+      channel?: {
+        id: string;
+        name: string;
+        color: string;
+        isSensitive: boolean;
+        allowRenoteToExternal: boolean;
+      } | null;
+      localOnly?: boolean;
+      reactionAcceptance: string | null;
+      reactions: Record<string, never>;
+      renoteCount: number;
+      repliesCount: number;
+      uri?: string;
+      url?: string;
+      reactionAndUserPairCache?: string[];
+      myReaction?: Record<string, unknown> | null;
+    };
+    NoteReaction: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      user: components['schemas']['UserLite'];
+      type: string;
+    };
+    NoteFavorite: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      note: components['schemas']['Note'];
+      /** Format: id */
+      noteId: string;
+    };
+    Notification: {
+      /** Format: id */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** @enum {string} */
+      type: 'note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'achievementEarned' | 'app' | 'test' | 'reaction:grouped' | 'renote:grouped';
+      user?: components['schemas']['UserLite'] | null;
+      /** Format: id */
+      userId?: string | null;
+      note?: components['schemas']['Note'] | null;
+      reaction?: string | null;
+      achievement?: string;
+      body?: string | null;
+      header?: string | null;
+      icon?: string | null;
+      reactions?: {
+          user: components['schemas']['UserLite'];
+          reaction: string;
+        }[] | null;
+      users?: components['schemas']['UserLite'][] | null;
+    };
+    DriveFile: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** @example lenna.jpg */
+      name: string;
+      /** @example image/jpeg */
+      type: string;
+      /**
+       * Format: md5
+       * @example 15eca7fba0480996e2245f5185bf39f2
+       */
+      md5: string;
+      /** @example 51469 */
+      size: number;
+      isSensitive: boolean;
+      blurhash: string | null;
+      properties: {
+        /** @example 1280 */
+        width?: number;
+        /** @example 720 */
+        height?: number;
+        /** @example 8 */
+        orientation?: number;
+        /** @example rgb(40,65,87) */
+        avgColor?: string;
+      };
+      /** Format: url */
+      url: string;
+      /** Format: url */
+      thumbnailUrl: string | null;
+      comment: string | null;
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      folderId: string | null;
+      folder?: components['schemas']['DriveFolder'] | null;
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      userId: string | null;
+      user?: components['schemas']['UserLite'] | null;
+    };
+    DriveFolder: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      name: string;
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      parentId: string | null;
+      foldersCount?: number;
+      filesCount?: number;
+      parent?: components['schemas']['DriveFolder'] | null;
+    };
+    Following: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: id */
+      followeeId: string;
+      /** Format: id */
+      followerId: string;
+      followee?: components['schemas']['UserDetailed'];
+      follower?: components['schemas']['UserDetailed'];
+    };
+    Muting: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      expiresAt: string | null;
+      /** Format: id */
+      muteeId: string;
+      mutee: components['schemas']['UserDetailed'];
+    };
+    RenoteMuting: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: id */
+      muteeId: string;
+      mutee: components['schemas']['UserDetailed'];
+    };
+    Blocking: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: id */
+      blockeeId: string;
+      blockee: components['schemas']['UserDetailed'];
+    };
+    Hashtag: {
+      /** @example misskey */
+      tag: string;
+      mentionedUsersCount: number;
+      mentionedLocalUsersCount: number;
+      mentionedRemoteUsersCount: number;
+      attachedUsersCount: number;
+      attachedLocalUsersCount: number;
+      attachedRemoteUsersCount: number;
+    };
+    InviteCode: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** @example GR6S02ERUA5VR */
+      code: string;
+      /** Format: date-time */
+      expiresAt: string | null;
+      /** Format: date-time */
+      createdAt: string;
+      createdBy: components['schemas']['UserLite'] | null;
+      usedBy: components['schemas']['UserLite'] | null;
+      /** Format: date-time */
+      usedAt: string | null;
+      used: boolean;
+    };
+    Page: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      updatedAt: string;
+      /** Format: id */
+      userId: string;
+      user: components['schemas']['UserLite'];
+      content: Record<string, never>[];
+      variables: Record<string, never>[];
+      title: string;
+      name: string;
+      summary: string | null;
+      hideTitleWhenPinned: boolean;
+      alignCenter: boolean;
+      font: string;
+      script: string;
+      eyeCatchingImageId: string | null;
+      eyeCatchingImage: components['schemas']['DriveFile'] | null;
+      attachedFiles: components['schemas']['DriveFile'][];
+      likedCount: number;
+      isLiked?: boolean;
+    };
+    Channel: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      lastNotedAt: string | null;
+      name: string;
+      description: string | null;
+      /** Format: id */
+      userId: string | null;
+      /** Format: url */
+      bannerUrl: string | null;
+      pinnedNoteIds: string[];
+      color: string;
+      isArchived: boolean;
+      usersCount: number;
+      notesCount: number;
+      isSensitive: boolean;
+      allowRenoteToExternal: boolean;
+      isFollowing?: boolean;
+      isFavorited?: boolean;
+      pinnedNotes?: components['schemas']['Note'][];
+    };
+    QueueCount: {
+      waiting: number;
+      active: number;
+      completed: number;
+      failed: number;
+      delayed: number;
+    };
+    Antenna: {
+      /** Format: id */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      name: string;
+      keywords: string[][];
+      excludeKeywords: string[][];
+      /** @enum {string} */
+      src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist';
+      /** Format: id */
+      userListId: string | null;
+      users: string[];
+      /** @default false */
+      caseSensitive: boolean;
+      /** @default false */
+      localOnly: boolean;
+      notify: boolean;
+      /** @default false */
+      withReplies: boolean;
+      withFile: boolean;
+      isActive: boolean;
+      /** @default false */
+      hasUnreadNote: boolean;
+    };
+    Clip: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      lastClippedAt: string | null;
+      /** Format: id */
+      userId: string;
+      user: components['schemas']['UserLite'];
+      name: string;
+      description: string | null;
+      isPublic: boolean;
+      favoritedCount: number;
+      isFavorited?: boolean;
+    };
+    FederationInstance: {
+      /** Format: id */
+      id: string;
+      /** Format: date-time */
+      firstRetrievedAt: string;
+      /** @example misskey.example.com */
+      host: string;
+      usersCount: number;
+      notesCount: number;
+      followingCount: number;
+      followersCount: number;
+      isNotResponding: boolean;
+      isSuspended: boolean;
+      isBlocked: boolean;
+      /** @example misskey */
+      softwareName: string | null;
+      softwareVersion: string | null;
+      /** @example true */
+      openRegistrations: boolean | null;
+      name: string | null;
+      description: string | null;
+      maintainerName: string | null;
+      maintainerEmail: string | null;
+      isSilenced: boolean;
+      /** Format: url */
+      iconUrl: string | null;
+      /** Format: url */
+      faviconUrl: string | null;
+      themeColor: string | null;
+      /** Format: date-time */
+      infoUpdatedAt: string | null;
+      /** Format: date-time */
+      latestRequestReceivedAt: string | null;
+    };
+    GalleryPost: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      updatedAt: string;
+      /** Format: id */
+      userId: string;
+      user: components['schemas']['UserLite'];
+      title: string;
+      description: string | null;
+      fileIds?: string[];
+      files?: components['schemas']['DriveFile'][];
+      tags?: string[];
+      isSensitive: boolean;
+      likedCount: number;
+      isLiked?: boolean;
+    };
+    EmojiSimple: {
+      aliases: string[];
+      name: string;
+      category: string | null;
+      url: string;
+      isSensitive?: boolean;
+      roleIdsThatCanBeUsedThisEmojiAsReaction?: string[];
+    };
+    EmojiDetailed: {
+      /** Format: id */
+      id: string;
+      aliases: string[];
+      name: string;
+      category: string | null;
+      /** @description The local host is represented with `null`. */
+      host: string | null;
+      url: string;
+      license: string | null;
+      isSensitive: boolean;
+      localOnly: boolean;
+      roleIdsThatCanBeUsedThisEmojiAsReaction: string[];
+    };
+    Flash: {
+      /**
+       * Format: id
+       * @example xxxxxxxxxx
+       */
+      id: string;
+      /** Format: date-time */
+      createdAt: string;
+      /** Format: date-time */
+      updatedAt: string;
+      /** Format: id */
+      userId: string;
+      user: components['schemas']['UserLite'];
+      title: string;
+      summary: string;
+      script: string;
+      likedCount: number | null;
+      isLiked?: boolean;
+    };
+  };
+  responses: never;
+  parameters: never;
+  requestBodies: never;
+  headers: never;
+  pathItems: never;
+};
+
+export type $defs = Record<string, never>;
+
+export type external = Record<string, never>;
+
+export type operations = {
+
+  /**
+   * admin/meta
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/meta': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            cacheRemoteFiles: boolean;
+            cacheRemoteSensitiveFiles: boolean;
+            emailRequiredForSignup: boolean;
+            enableHcaptcha: boolean;
+            hcaptchaSiteKey: string | null;
+            enableRecaptcha: boolean;
+            recaptchaSiteKey: string | null;
+            enableTurnstile: boolean;
+            turnstileSiteKey: string | null;
+            swPublickey: string | null;
+            /** @default /assets/ai.png */
+            mascotImageUrl: string | null;
+            bannerUrl: string | null;
+            serverErrorImageUrl: string | null;
+            infoImageUrl: string | null;
+            notFoundImageUrl: string | null;
+            iconUrl: string | null;
+            app192IconUrl: string | null;
+            app512IconUrl: string | null;
+            enableEmail: boolean;
+            enableServiceWorker: boolean;
+            translatorAvailable: boolean;
+            silencedHosts?: string[];
+            pinnedUsers: string[];
+            hiddenTags: string[];
+            blockedHosts: string[];
+            sensitiveWords: string[];
+            preservedUsernames: string[];
+            hcaptchaSecretKey: string | null;
+            recaptchaSecretKey: string | null;
+            turnstileSecretKey: string | null;
+            sensitiveMediaDetection: string;
+            sensitiveMediaDetectionSensitivity: string;
+            setSensitiveFlagAutomatically: boolean;
+            enableSensitiveMediaDetectionForVideos: boolean;
+            /** Format: id */
+            proxyAccountId: string | null;
+            email: string | null;
+            smtpSecure: boolean;
+            smtpHost: string | null;
+            smtpPort: number | null;
+            smtpUser: string | null;
+            smtpPass: string | null;
+            swPrivateKey: string | null;
+            useObjectStorage: boolean;
+            objectStorageBaseUrl: string | null;
+            objectStorageBucket: string | null;
+            objectStoragePrefix: string | null;
+            objectStorageEndpoint: string | null;
+            objectStorageRegion: string | null;
+            objectStoragePort: number | null;
+            objectStorageAccessKey: string | null;
+            objectStorageSecretKey: string | null;
+            objectStorageUseSSL: boolean;
+            objectStorageUseProxy: boolean;
+            objectStorageSetPublicRead: boolean;
+            enableIpLogging: boolean;
+            enableActiveEmailValidation: boolean;
+            enableVerifymailApi: boolean;
+            verifymailAuthKey: string | null;
+            enableChartsForRemoteUser: boolean;
+            enableChartsForFederatedInstances: boolean;
+            enableServerMachineStats: boolean;
+            enableIdenticonGeneration: boolean;
+            manifestJsonOverride: string;
+            policies: Record<string, never>;
+            enableFanoutTimeline: boolean;
+            enableFanoutTimelineDbFallback: boolean;
+            perLocalUserUserTimelineCacheMax: number;
+            perRemoteUserUserTimelineCacheMax: number;
+            perUserHomeTimelineCacheMax: number;
+            perUserListTimelineCacheMax: number;
+            notesPerOneAd: number;
+            backgroundImageUrl: string | null;
+            deeplAuthKey: string | null;
+            deeplIsPro: boolean;
+            defaultDarkTheme: string | null;
+            defaultLightTheme: string | null;
+            description: string | null;
+            disableRegistration: boolean;
+            impressumUrl: string | null;
+            maintainerEmail: string | null;
+            maintainerName: string | null;
+            name: string | null;
+            objectStorageS3ForcePathStyle: boolean;
+            privacyPolicyUrl: string | null;
+            repositoryUrl: string;
+            summalyProxy: string | null;
+            themeColor: string | null;
+            tosUrl: string | null;
+            uri: string;
+            version: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/abuse-user-reports
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/abuse-user-reports': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default null */
+          state?: string | null;
+          /**
+           * @default combined
+           * @enum {string}
+           */
+          reporterOrigin?: 'combined' | 'local' | 'remote';
+          /**
+           * @default combined
+           * @enum {string}
+           */
+          targetUserOrigin?: 'combined' | 'local' | 'remote';
+          /** @default false */
+          forwarded?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /**
+               * Format: id
+               * @example xxxxxxxxxx
+               */
+              id: string;
+              /** Format: date-time */
+              createdAt: string;
+              comment: string;
+              /** @example false */
+              resolved: boolean;
+              /** Format: id */
+              reporterId: string;
+              /** Format: id */
+              targetUserId: string;
+              /** Format: id */
+              assigneeId: string | null;
+              reporter: components['schemas']['User'];
+              targetUser: components['schemas']['User'];
+              assignee?: components['schemas']['User'] | null;
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/accounts/create
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'admin/accounts/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          username: string;
+          password: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['User'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/accounts/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/accounts/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/accounts/find-by-email
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/accounts/find-by-email': {
+    requestBody: {
+      content: {
+        'application/json': {
+          email: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/ad/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/ad/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          url: string;
+          memo: string;
+          place: string;
+          priority: string;
+          ratio: number;
+          expiresAt: number;
+          startsAt: number;
+          imageUrl: string;
+          dayOfWeek: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/ad/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/ad/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/ad/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/ad/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default null */
+          publishing?: boolean | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/ad/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/ad/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+          memo: string;
+          url: string;
+          imageUrl: string;
+          place: string;
+          priority: string;
+          ratio: number;
+          expiresAt: number;
+          startsAt: number;
+          dayOfWeek: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/announcements/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/announcements/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          title: string;
+          text: string;
+          imageUrl: string | null;
+          /**
+           * @default info
+           * @enum {string}
+           */
+          icon?: 'info' | 'warning' | 'error' | 'success';
+          /**
+           * @default normal
+           * @enum {string}
+           */
+          display?: 'normal' | 'banner' | 'dialog';
+          /** @default false */
+          forExistingUsers?: boolean;
+          /** @default false */
+          silence?: boolean;
+          /** @default false */
+          needConfirmationToRead?: boolean;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          userId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /**
+             * Format: id
+             * @example xxxxxxxxxx
+             */
+            id: string;
+            /** Format: date-time */
+            createdAt: string;
+            /** Format: date-time */
+            updatedAt: string | null;
+            title: string;
+            text: string;
+            imageUrl: string | null;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/announcements/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/announcements/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/announcements/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/announcements/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** Format: misskey:id */
+          userId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /**
+               * Format: id
+               * @example xxxxxxxxxx
+               */
+              id: string;
+              /** Format: date-time */
+              createdAt: string;
+              /** Format: date-time */
+              updatedAt: string | null;
+              text: string;
+              title: string;
+              imageUrl: string | null;
+              reads: number;
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/announcements/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/announcements/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+          title?: string;
+          text?: string;
+          imageUrl?: string | null;
+          /** @enum {string} */
+          icon?: 'info' | 'warning' | 'error' | 'success';
+          /** @enum {string} */
+          display?: 'normal' | 'banner' | 'dialog';
+          forExistingUsers?: boolean;
+          silence?: boolean;
+          needConfirmationToRead?: boolean;
+          isActive?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/avatar-decorations/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/avatar-decorations/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          description: string;
+          url: string;
+          roleIdsThatCanBeUsedThisDecoration?: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/avatar-decorations/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/avatar-decorations/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/avatar-decorations/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/avatar-decorations/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** Format: misskey:id */
+          userId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /**
+               * Format: id
+               * @example xxxxxxxxxx
+               */
+              id: string;
+              /** Format: date-time */
+              createdAt: string;
+              /** Format: date-time */
+              updatedAt: string | null;
+              name: string;
+              description: string;
+              url: string;
+              roleIdsThatCanBeUsedThisDecoration: string[];
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/avatar-decorations/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/avatar-decorations/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+          name?: string;
+          description?: string;
+          url?: string;
+          roleIdsThatCanBeUsedThisDecoration?: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/delete-all-files-of-a-user
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/delete-all-files-of-a-user': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/unset-user-avatar
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/unset-user-avatar': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/unset-user-banner
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/unset-user-banner': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/drive/clean-remote-files
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/drive/clean-remote-files': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/drive/cleanup
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/drive/cleanup': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/drive/files
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/drive/files': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** Format: misskey:id */
+          userId?: string | null;
+          type?: string | null;
+          /**
+           * @default local
+           * @enum {string}
+           */
+          origin?: 'combined' | 'local' | 'remote';
+          /**
+           * @description The local host is represented with `null`.
+           * @default null
+           */
+          hostname?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/drive/show-file
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/drive/show-file': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          fileId?: string;
+          url?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /**
+             * Format: id
+             * @example xxxxxxxxxx
+             */
+            id: string;
+            /** Format: date-time */
+            createdAt: string;
+            /**
+             * Format: id
+             * @example xxxxxxxxxx
+             */
+            userId: string | null;
+            /** @description The local host is represented with `null`. */
+            userHost: string | null;
+            /**
+             * Format: md5
+             * @example 15eca7fba0480996e2245f5185bf39f2
+             */
+            md5: string;
+            /** @example lenna.jpg */
+            name: string;
+            /** @example image/jpeg */
+            type: string;
+            /** @example 51469 */
+            size: number;
+            comment: string | null;
+            blurhash: string | null;
+            properties: Record<string, never>;
+            /** @example true */
+            storedInternal: boolean | null;
+            /** Format: url */
+            url: string | null;
+            /** Format: url */
+            thumbnailUrl: string | null;
+            /** Format: url */
+            webpublicUrl: string | null;
+            accessKey: string | null;
+            thumbnailAccessKey: string | null;
+            webpublicAccessKey: string | null;
+            uri: string | null;
+            src: string | null;
+            /**
+             * Format: id
+             * @example xxxxxxxxxx
+             */
+            folderId: string | null;
+            isSensitive: boolean;
+            isLink: boolean;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/add-aliases-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/add-aliases-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+          aliases: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/add
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/add': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /** Format: misskey:id */
+          fileId: string;
+          /** @description Use `null` to reset the category. */
+          category?: string | null;
+          aliases?: string[];
+          license?: string | null;
+          isSensitive?: boolean;
+          localOnly?: boolean;
+          roleIdsThatCanBeUsedThisEmojiAsReaction?: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/copy
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/copy': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          emojiId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /** Format: id */
+            id: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/delete-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/delete-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/list-remote
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/list-remote': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default null */
+          query?: string | null;
+          /**
+           * @description Use `null` to represent the local host.
+           * @default null
+           */
+          host?: string | null;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /** Format: id */
+              id: string;
+              aliases: string[];
+              name: string;
+              category: string | null;
+              /** @description The local host is represented with `null`. */
+              host: string | null;
+              url: string;
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default null */
+          query?: string | null;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /** Format: id */
+              id: string;
+              aliases: string[];
+              name: string;
+              category: string | null;
+              /** @description The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files. */
+              host: string | null;
+              url: string;
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/remove-aliases-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/remove-aliases-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+          aliases: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/set-aliases-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/set-aliases-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+          aliases: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/set-category-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/set-category-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+          /** @description Use `null` to reset the category. */
+          category?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/set-license-bulk
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/set-license-bulk': {
+    requestBody: {
+      content: {
+        'application/json': {
+          ids: string[];
+          /** @description Use `null` to reset the license. */
+          license?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/emoji/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/emoji/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          id: string;
+          name: string;
+          /** Format: misskey:id */
+          fileId?: string;
+          /** @description Use `null` to reset the category. */
+          category?: string | null;
+          aliases: string[];
+          license?: string | null;
+          isSensitive?: boolean;
+          localOnly?: boolean;
+          roleIdsThatCanBeUsedThisEmojiAsReaction?: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/federation/delete-all-files
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/federation/delete-all-files': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/federation/refresh-remote-instance-metadata
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/federation/refresh-remote-instance-metadata': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/federation/remove-all-following
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/federation/remove-all-following': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/federation/update-instance
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/federation/update-instance': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+          isSuspended: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/get-index-stats
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/get-index-stats': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/get-table-stats
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/get-table-stats': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': Record<string, never>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/get-user-ips
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/get-user-ips': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/invite/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/invite/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 1 */
+          count?: number;
+          expiresAt?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** @example GR6S02ERUA5VR */
+              code: string;
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/invite/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/invite/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 30 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+          /**
+           * @default all
+           * @enum {string}
+           */
+          type?: 'unused' | 'used' | 'expired' | 'all';
+          /** @enum {string} */
+          sort?: '+createdAt' | '-createdAt' | '+usedAt' | '-usedAt';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': Record<string, never>[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/promo/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/promo/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          expiresAt: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/queue/clear
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/queue/clear': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/queue/deliver-delayed
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/queue/deliver-delayed': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ((string | number)[])[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/queue/inbox-delayed
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/queue/inbox-delayed': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ((string | number)[])[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/queue/promote
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/queue/promote': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          type: 'deliver' | 'inbox';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/queue/stats
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/queue/stats': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            deliver: components['schemas']['QueueCount'];
+            inbox: components['schemas']['QueueCount'];
+            db: components['schemas']['QueueCount'];
+            objectStorage: components['schemas']['QueueCount'];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/relays/add
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/relays/add': {
+    requestBody: {
+      content: {
+        'application/json': {
+          inbox: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /** Format: id */
+            id: string;
+            /** Format: url */
+            inbox: string;
+            /**
+             * @default requesting
+             * @enum {string}
+             */
+            status: 'requesting' | 'accepted' | 'rejected';
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/relays/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/relays/list': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': ({
+              /** Format: id */
+              id: string;
+              /** Format: url */
+              inbox: string;
+              /**
+               * @default requesting
+               * @enum {string}
+               */
+              status: 'requesting' | 'accepted' | 'rejected';
+            })[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/relays/remove
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/relays/remove': {
+    requestBody: {
+      content: {
+        'application/json': {
+          inbox: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/reset-password
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/reset-password': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            password: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/resolve-abuse-user-report
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/resolve-abuse-user-report': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          reportId: string;
+          /** @default false */
+          forward?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/send-email
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/send-email': {
+    requestBody: {
+      content: {
+        'application/json': {
+          to: string;
+          subject: string;
+          text: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/server-info
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/server-info': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            machine: string;
+            /** @example linux */
+            os: string;
+            node: string;
+            psql: string;
+            cpu: {
+              model: string;
+              cores: number;
+            };
+            mem: {
+              /** Format: bytes */
+              total: number;
+            };
+            fs: {
+              /** Format: bytes */
+              total: number;
+              /** Format: bytes */
+              used: number;
+            };
+            net: {
+              /** @example eth0 */
+              interface: string;
+            };
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/show-moderation-logs
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/show-moderation-logs': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          type?: string | null;
+          /** Format: misskey:id */
+          userId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** Format: id */
+              id: string;
+              /** Format: date-time */
+              createdAt: string;
+              type: string;
+              info: Record<string, never>;
+              /** Format: id */
+              userId: string;
+              user: components['schemas']['UserDetailed'];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/show-user
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/show-user': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': Record<string, never>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/show-users
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/show-users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+          /** @enum {string} */
+          sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt' | '+lastActiveDate' | '-lastActiveDate';
+          /**
+           * @default all
+           * @enum {string}
+           */
+          state?: 'all' | 'alive' | 'available' | 'admin' | 'moderator' | 'adminOrModerator' | 'suspended';
+          /**
+           * @default combined
+           * @enum {string}
+           */
+          origin?: 'combined' | 'local' | 'remote';
+          /** @default null */
+          username?: string | null;
+          /**
+           * @description The local host is represented with `null`.
+           * @default null
+           */
+          hostname?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/suspend-user
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/suspend-user': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/unsuspend-user
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/unsuspend-user': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/update-meta
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/update-meta': {
+    requestBody: {
+      content: {
+        'application/json': {
+          disableRegistration?: boolean | null;
+          pinnedUsers?: string[] | null;
+          hiddenTags?: string[] | null;
+          blockedHosts?: string[] | null;
+          sensitiveWords?: string[] | null;
+          themeColor?: string | null;
+          mascotImageUrl?: string | null;
+          bannerUrl?: string | null;
+          serverErrorImageUrl?: string | null;
+          infoImageUrl?: string | null;
+          notFoundImageUrl?: string | null;
+          iconUrl?: string | null;
+          app192IconUrl?: string | null;
+          app512IconUrl?: string | null;
+          backgroundImageUrl?: string | null;
+          logoImageUrl?: string | null;
+          name?: string | null;
+          shortName?: string | null;
+          description?: string | null;
+          defaultLightTheme?: string | null;
+          defaultDarkTheme?: string | null;
+          cacheRemoteFiles?: boolean;
+          cacheRemoteSensitiveFiles?: boolean;
+          emailRequiredForSignup?: boolean;
+          enableHcaptcha?: boolean;
+          hcaptchaSiteKey?: string | null;
+          hcaptchaSecretKey?: string | null;
+          enableRecaptcha?: boolean;
+          recaptchaSiteKey?: string | null;
+          recaptchaSecretKey?: string | null;
+          enableTurnstile?: boolean;
+          turnstileSiteKey?: string | null;
+          turnstileSecretKey?: string | null;
+          /** @enum {string} */
+          sensitiveMediaDetection?: 'none' | 'all' | 'local' | 'remote';
+          /** @enum {string} */
+          sensitiveMediaDetectionSensitivity?: 'medium' | 'low' | 'high' | 'veryLow' | 'veryHigh';
+          setSensitiveFlagAutomatically?: boolean;
+          enableSensitiveMediaDetectionForVideos?: boolean;
+          /** Format: misskey:id */
+          proxyAccountId?: string | null;
+          maintainerName?: string | null;
+          maintainerEmail?: string | null;
+          langs?: string[];
+          summalyProxy?: string | null;
+          deeplAuthKey?: string | null;
+          deeplIsPro?: boolean;
+          enableEmail?: boolean;
+          email?: string | null;
+          smtpSecure?: boolean;
+          smtpHost?: string | null;
+          smtpPort?: number | null;
+          smtpUser?: string | null;
+          smtpPass?: string | null;
+          enableServiceWorker?: boolean;
+          swPublicKey?: string | null;
+          swPrivateKey?: string | null;
+          tosUrl?: string | null;
+          repositoryUrl?: string;
+          feedbackUrl?: string;
+          impressumUrl?: string | null;
+          privacyPolicyUrl?: string | null;
+          useObjectStorage?: boolean;
+          objectStorageBaseUrl?: string | null;
+          objectStorageBucket?: string | null;
+          objectStoragePrefix?: string | null;
+          objectStorageEndpoint?: string | null;
+          objectStorageRegion?: string | null;
+          objectStoragePort?: number | null;
+          objectStorageAccessKey?: string | null;
+          objectStorageSecretKey?: string | null;
+          objectStorageUseSSL?: boolean;
+          objectStorageUseProxy?: boolean;
+          objectStorageSetPublicRead?: boolean;
+          objectStorageS3ForcePathStyle?: boolean;
+          enableIpLogging?: boolean;
+          enableActiveEmailValidation?: boolean;
+          enableVerifymailApi?: boolean;
+          verifymailAuthKey?: string | null;
+          enableChartsForRemoteUser?: boolean;
+          enableChartsForFederatedInstances?: boolean;
+          enableServerMachineStats?: boolean;
+          enableIdenticonGeneration?: boolean;
+          serverRules?: string[];
+          preservedUsernames?: string[];
+          manifestJsonOverride?: string;
+          enableFanoutTimeline?: boolean;
+          enableFanoutTimelineDbFallback?: boolean;
+          perLocalUserUserTimelineCacheMax?: number;
+          perRemoteUserUserTimelineCacheMax?: number;
+          perUserHomeTimelineCacheMax?: number;
+          perUserListTimelineCacheMax?: number;
+          notesPerOneAd?: number;
+          silencedHosts?: string[] | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/delete-account
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/delete-account': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': unknown;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/update-user-note
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/update-user-note': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          text: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          description: string;
+          color: string | null;
+          iconUrl: string | null;
+          /** @enum {string} */
+          target: 'manual' | 'conditional';
+          condFormula: Record<string, never>;
+          isPublic: boolean;
+          isModerator: boolean;
+          isAdministrator: boolean;
+          /** @default false */
+          isExplorable?: boolean;
+          asBadge: boolean;
+          canEditMembersByModerator: boolean;
+          displayOrder: number;
+          policies: Record<string, never>;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/list': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/show
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          name: string;
+          description: string;
+          color: string | null;
+          iconUrl: string | null;
+          /** @enum {string} */
+          target: 'manual' | 'conditional';
+          condFormula: Record<string, never>;
+          isPublic: boolean;
+          isModerator: boolean;
+          isAdministrator: boolean;
+          isExplorable?: boolean;
+          asBadge: boolean;
+          canEditMembersByModerator: boolean;
+          displayOrder: number;
+          policies: Record<string, never>;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/assign
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/assign': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          /** Format: misskey:id */
+          userId: string;
+          expiresAt?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/unassign
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/unassign': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/update-default-policies
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'admin/roles/update-default-policies': {
+    requestBody: {
+      content: {
+        'application/json': {
+          policies: Record<string, never>;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * admin/roles/users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'admin/roles/users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * announcements
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  announcements: {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default true */
+          isActive?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Announcement'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'antennas/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /** @enum {string} */
+          src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist';
+          /** Format: misskey:id */
+          userListId?: string | null;
+          keywords: string[][];
+          excludeKeywords: string[][];
+          users: string[];
+          caseSensitive: boolean;
+          localOnly?: boolean;
+          withReplies: boolean;
+          withFile: boolean;
+          notify: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Antenna'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'antennas/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          antennaId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'antennas/list': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Antenna'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'antennas/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          antennaId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/show
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'antennas/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          antennaId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Antenna'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * antennas/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'antennas/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          antennaId: string;
+          name: string;
+          /** @enum {string} */
+          src: 'home' | 'all' | 'users' | 'list' | 'users_blacklist';
+          /** Format: misskey:id */
+          userListId?: string | null;
+          keywords: string[][];
+          excludeKeywords: string[][];
+          users: string[];
+          caseSensitive: boolean;
+          localOnly?: boolean;
+          withReplies: boolean;
+          withFile: boolean;
+          notify: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Antenna'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * ap/get
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'ap/get': {
+    requestBody: {
+      content: {
+        'application/json': {
+          uri: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': Record<string, never>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * ap/show
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'ap/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          uri: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': OneOf<[{
+            /** @enum {string} */
+            type: 'User';
+            object: components['schemas']['UserDetailedNotMe'];
+          }, {
+            /** @enum {string} */
+            type: 'Note';
+            object: components['schemas']['Note'];
+          }]>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * app/create
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'app/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          description: string;
+          permission: string[];
+          callbackUrl?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['App'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * app/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'app/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          appId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['App'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * auth/session/generate
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'auth/session/generate': {
+    requestBody: {
+      content: {
+        'application/json': {
+          appSecret: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            token: string;
+            /** Format: url */
+            url: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * auth/session/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'auth/session/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          token: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /** Format: id */
+            id: string;
+            app: components['schemas']['App'];
+            token: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * auth/session/userkey
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'auth/session/userkey': {
+    requestBody: {
+      content: {
+        'application/json': {
+          appSecret: string;
+          token: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            accessToken: string;
+            user: components['schemas']['UserDetailedNotMe'];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * blocking/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:blocks*
+   */
+  'blocking/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailedNotMe'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * blocking/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:blocks*
+   */
+  'blocking/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailedNotMe'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * blocking/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:blocks*
+   */
+  'blocking/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 30 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Blocking'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          description?: string | null;
+          /** Format: misskey:id */
+          bannerId?: string | null;
+          color?: string;
+          isSensitive?: boolean | null;
+          allowRenoteToExternal?: boolean | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/featured
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'channels/featured': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/follow
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/follow': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/followed
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:channels*
+   */
+  'channels/followed': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 5 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/owned
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:channels*
+   */
+  'channels/owned': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 5 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'channels/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'channels/timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/unfollow
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/unfollow': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+          name?: string;
+          description?: string | null;
+          /** Format: misskey:id */
+          bannerId?: string | null;
+          isArchived?: boolean | null;
+          pinnedNoteIds?: string[];
+          color?: string;
+          isSensitive?: boolean | null;
+          allowRenoteToExternal?: boolean | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/favorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/favorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/unfavorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:channels*
+   */
+  'channels/unfavorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          channelId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/my-favorites
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:channels*
+   */
+  'channels/my-favorites': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * channels/search
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'channels/search': {
+    requestBody: {
+      content: {
+        'application/json': {
+          query: string;
+          /**
+           * @default nameAndDescription
+           * @enum {string}
+           */
+          type?: 'nameAndDescription' | 'nameOnly';
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 5 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Channel'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/active-users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/active-users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            readWrite: number[];
+            read: number[];
+            write: number[];
+            registeredWithinWeek: number[];
+            registeredWithinMonth: number[];
+            registeredWithinYear: number[];
+            registeredOutsideWeek: number[];
+            registeredOutsideMonth: number[];
+            registeredOutsideYear: number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/ap-request
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/ap-request': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            deliverFailed: number[];
+            deliverSucceeded: number[];
+            inboxReceived: number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/drive
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/drive': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'local.incCount': number[];
+            'local.incSize': number[];
+            'local.decCount': number[];
+            'local.decSize': number[];
+            'remote.incCount': number[];
+            'remote.incSize': number[];
+            'remote.decCount': number[];
+            'remote.decSize': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/federation
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/federation': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            deliveredInstances: number[];
+            inboxInstances: number[];
+            stalled: number[];
+            sub: number[];
+            pub: number[];
+            pubsub: number[];
+            subActive: number[];
+            pubActive: number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/instance
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/instance': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          host: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'requests.failed': number[];
+            'requests.succeeded': number[];
+            'requests.received': number[];
+            'notes.total': number[];
+            'notes.inc': number[];
+            'notes.dec': number[];
+            'notes.diffs.normal': number[];
+            'notes.diffs.reply': number[];
+            'notes.diffs.renote': number[];
+            'notes.diffs.withFile': number[];
+            'users.total': number[];
+            'users.inc': number[];
+            'users.dec': number[];
+            'following.total': number[];
+            'following.inc': number[];
+            'following.dec': number[];
+            'followers.total': number[];
+            'followers.inc': number[];
+            'followers.dec': number[];
+            'drive.totalFiles': number[];
+            'drive.incFiles': number[];
+            'drive.decFiles': number[];
+            'drive.incUsage': number[];
+            'drive.decUsage': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'local.total': number[];
+            'local.inc': number[];
+            'local.dec': number[];
+            'local.diffs.normal': number[];
+            'local.diffs.reply': number[];
+            'local.diffs.renote': number[];
+            'local.diffs.withFile': number[];
+            'remote.total': number[];
+            'remote.inc': number[];
+            'remote.dec': number[];
+            'remote.diffs.normal': number[];
+            'remote.diffs.reply': number[];
+            'remote.diffs.renote': number[];
+            'remote.diffs.withFile': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/user/drive
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/user/drive': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            totalCount: number[];
+            totalSize: number[];
+            incCount: number[];
+            incSize: number[];
+            decCount: number[];
+            decSize: number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/user/following
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/user/following': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'local.followings.total': number[];
+            'local.followings.inc': number[];
+            'local.followings.dec': number[];
+            'local.followers.total': number[];
+            'local.followers.inc': number[];
+            'local.followers.dec': number[];
+            'remote.followings.total': number[];
+            'remote.followings.inc': number[];
+            'remote.followings.dec': number[];
+            'remote.followers.total': number[];
+            'remote.followers.inc': number[];
+            'remote.followers.dec': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/user/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/user/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            total: number[];
+            inc: number[];
+            dec: number[];
+            'diffs.normal': number[];
+            'diffs.reply': number[];
+            'diffs.renote': number[];
+            'diffs.withFile': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/user/pv
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/user/pv': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'upv.user': number[];
+            'pv.user': number[];
+            'upv.visitor': number[];
+            'pv.visitor': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/user/reactions
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/user/reactions': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'local.count': number[];
+            'remote.count': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * charts/users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'charts/users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          span: 'day' | 'hour';
+          /** @default 30 */
+          limit?: number;
+          /** @default null */
+          offset?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            'local.total': number[];
+            'local.inc': number[];
+            'local.dec': number[];
+            'remote.total': number[];
+            'remote.inc': number[];
+            'remote.dec': number[];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/add-note
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'clips/add-note': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/remove-note
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'clips/remove-note': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'clips/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /** @default false */
+          isPublic?: boolean;
+          description?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'clips/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'clips/list': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No* / **Permission**: *read:account*
+   */
+  'clips/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No* / **Permission**: *read:account*
+   */
+  'clips/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'clips/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+          name: string;
+          isPublic?: boolean;
+          description?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/favorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:clip-favorite*
+   */
+  'clips/favorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/unfavorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:clip-favorite*
+   */
+  'clips/unfavorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          clipId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * clips/my-favorites
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:clip-favorite*
+   */
+  'clips/my-favorites': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  drive: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            capacity: number;
+            usage: number;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          folderId?: string | null;
+          type?: string | null;
+          /** @enum {string|null} */
+          sort?: '+createdAt' | '-createdAt' | '+name' | '-name' | '+size' | '-size' | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/attached-notes
+   * @description Find the notes to which the given file is attached.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files/attached-notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          fileId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/check-existence
+   * @description Check if a given file exists.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files/check-existence': {
+    requestBody: {
+      content: {
+        'application/json': {
+          md5: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': boolean;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/create
+   * @description Upload a new drive file.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/files/create': {
+    requestBody: {
+      content: {
+        'multipart/form-data': {
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          folderId?: string | null;
+          /** @default null */
+          name?: string | null;
+          /** @default null */
+          comment?: string | null;
+          /** @default false */
+          isSensitive?: boolean;
+          /** @default false */
+          force?: boolean;
+          /**
+           * Format: binary
+           * @description The file contents.
+           */
+          file: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/delete
+   * @description Delete an existing drive file.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/files/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          fileId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/find-by-hash
+   * @description Search for a drive file by a hash of the contents.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files/find-by-hash': {
+    requestBody: {
+      content: {
+        'application/json': {
+          md5: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/find
+   * @description Search for a drive file by the given parameters.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files/find': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          folderId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/show
+   * @description Show the properties of a drive file.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/files/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          fileId?: string;
+          url?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/update
+   * @description Update the properties of a drive file.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/files/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          fileId: string;
+          /** Format: misskey:id */
+          folderId?: string | null;
+          name?: string;
+          isSensitive?: boolean;
+          comment?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/files/upload-from-url
+   * @description Request the server to download a new drive file from the specified URL.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/files/upload-from-url': {
+    requestBody: {
+      content: {
+        'application/json': {
+          url: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          folderId?: string | null;
+          /** @default false */
+          isSensitive?: boolean;
+          /** @default null */
+          comment?: string | null;
+          /** @default null */
+          marker?: string | null;
+          /** @default false */
+          force?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/folders': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          folderId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFolder'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/folders/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default Untitled */
+          name?: string;
+          /** Format: misskey:id */
+          parentId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFolder'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/folders/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          folderId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders/find
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/folders/find': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          parentId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFolder'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders/show
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/folders/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          folderId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFolder'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/folders/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:drive*
+   */
+  'drive/folders/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          folderId: string;
+          name?: string;
+          /** Format: misskey:id */
+          parentId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFolder'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * drive/stream
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:drive*
+   */
+  'drive/stream': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          type?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['DriveFile'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * email-address/available
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'email-address/available': {
+    requestBody: {
+      content: {
+        'application/json': {
+          emailAddress: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            available: boolean;
+            reason: string | null;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * endpoint
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  endpoint: {
+    requestBody: {
+      content: {
+        'application/json': {
+          endpoint: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * endpoints
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  endpoints: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': string[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/followers
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/followers': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Following'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/following
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/following': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Following'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/instances
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/instances': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @description Omit or use `null` to not filter by host. */
+          host?: string | null;
+          blocked?: boolean | null;
+          notResponding?: boolean | null;
+          suspended?: boolean | null;
+          silenced?: boolean | null;
+          federating?: boolean | null;
+          subscribing?: boolean | null;
+          publishing?: boolean | null;
+          /** @default 30 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+          /** @enum {string|null} */
+          sort?: '+pubSub' | '-pubSub' | '+notes' | '-notes' | '+users' | '-users' | '+following' | '-following' | '+followers' | '-followers' | '+firstRetrievedAt' | '-firstRetrievedAt' | '+latestRequestReceivedAt' | '-latestRequestReceivedAt' | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['FederationInstance'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/show-instance
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/show-instance': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['FederationInstance'] | null;
+        };
+      };
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/update-remote-user
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'federation/update-remote-user': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          host: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailedNotMe'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * federation/stats
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'federation/stats': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          withReplies?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserLite'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserLite'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @enum {string} */
+          notify?: 'normal' | 'none';
+          withReplies?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserLite'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/update-all
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/update-all': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          notify?: 'normal' | 'none';
+          withReplies?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/invalidate
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/invalidate': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserLite'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/requests/accept
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/requests/accept': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/requests/cancel
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/requests/cancel': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserLite'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/requests/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:following*
+   */
+  'following/requests/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** Format: id */
+              id: string;
+              follower: components['schemas']['UserLite'];
+              followee: components['schemas']['UserLite'];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * following/requests/reject
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:following*
+   */
+  'following/requests/reject': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/featured
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'gallery/featured': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/popular
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'gallery/popular': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'gallery/posts': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:gallery*
+   */
+  'gallery/posts/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          title: string;
+          description?: string | null;
+          fileIds: string[];
+          /** @default false */
+          isSensitive?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:gallery*
+   */
+  'gallery/posts/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          postId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/like
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:gallery-likes*
+   */
+  'gallery/posts/like': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          postId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'gallery/posts/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          postId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/unlike
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:gallery-likes*
+   */
+  'gallery/posts/unlike': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          postId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * gallery/posts/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:gallery*
+   */
+  'gallery/posts/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          postId: string;
+          title: string;
+          description?: string | null;
+          fileIds: string[];
+          /** @default false */
+          isSensitive?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * get-online-users-count
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'get-online-users-count': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * get-avatar-decorations
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'get-avatar-decorations': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /**
+               * Format: id
+               * @example xxxxxxxxxx
+               */
+              id: string;
+              name: string;
+              description: string;
+              url: string;
+              roleIdsThatCanBeUsedThisDecoration: string[];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * hashtags/list
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'hashtags/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default false */
+          attachedToUserOnly?: boolean;
+          /** @default false */
+          attachedToLocalUserOnly?: boolean;
+          /** @default false */
+          attachedToRemoteUserOnly?: boolean;
+          /** @enum {string} */
+          sort: '+mentionedUsers' | '-mentionedUsers' | '+mentionedLocalUsers' | '-mentionedLocalUsers' | '+mentionedRemoteUsers' | '-mentionedRemoteUsers' | '+attachedUsers' | '-attachedUsers' | '+attachedLocalUsers' | '-attachedLocalUsers' | '+attachedRemoteUsers' | '-attachedRemoteUsers';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Hashtag'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * hashtags/search
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'hashtags/search': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          query: string;
+          /** @default 0 */
+          offset?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': string[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * hashtags/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'hashtags/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          tag: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Hashtag'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * hashtags/trend
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'hashtags/trend': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              tag: string;
+              chart: number[];
+              usersCount: number;
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * hashtags/users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'hashtags/users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          tag: string;
+          /** @default 10 */
+          limit?: number;
+          /** @enum {string} */
+          sort: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt';
+          /**
+           * @default all
+           * @enum {string}
+           */
+          state?: 'all' | 'alive';
+          /**
+           * @default local
+           * @enum {string}
+           */
+          origin?: 'combined' | 'local' | 'remote';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  i: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['MeDetailed'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/claim-achievement
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/claim-achievement': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @enum {string} */
+          name: 'notes1' | 'notes10' | 'notes100' | 'notes500' | 'notes1000' | 'notes5000' | 'notes10000' | 'notes20000' | 'notes30000' | 'notes40000' | 'notes50000' | 'notes60000' | 'notes70000' | 'notes80000' | 'notes90000' | 'notes100000' | 'login3' | 'login7' | 'login15' | 'login30' | 'login60' | 'login100' | 'login200' | 'login300' | 'login400' | 'login500' | 'login600' | 'login700' | 'login800' | 'login900' | 'login1000' | 'passedSinceAccountCreated1' | 'passedSinceAccountCreated2' | 'passedSinceAccountCreated3' | 'loggedInOnBirthday' | 'loggedInOnNewYearsDay' | 'noteClipped1' | 'noteFavorited1' | 'myNoteFavorited1' | 'profileFilled' | 'markedAsCat' | 'following1' | 'following10' | 'following50' | 'following100' | 'following300' | 'followers1' | 'followers10' | 'followers50' | 'followers100' | 'followers300' | 'followers500' | 'followers1000' | 'collectAchievements30' | 'viewAchievements3min' | 'iLoveMisskey' | 'foundTreasure' | 'client30min' | 'client60min' | 'noteDeletedWithin1min' | 'postedAtLateNight' | 'postedAt0min0sec' | 'selfQuote' | 'htl20npm' | 'viewInstanceChart' | 'outputHelloWorldOnScratchpad' | 'open3windows' | 'driveFolderCircularReference' | 'reactWithoutRead' | 'clickedClickHere' | 'justPlainLucky' | 'setNameToSyuilo' | 'cookieClicked' | 'brainDiver' | 'smashTestNotificationButton' | 'tutorialCompleted';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/favorites
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:favorites*
+   */
+  'i/favorites': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['NoteFavorite'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/gallery/likes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:gallery-likes*
+   */
+  'i/gallery/likes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** Format: id */
+              id: string;
+              post: components['schemas']['GalleryPost'];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/gallery/posts
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:gallery*
+   */
+  'i/gallery/posts': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/notifications
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:notifications*
+   */
+  'i/notifications': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default true */
+          markAsRead?: boolean;
+          includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'achievementEarned' | 'app' | 'test' | 'pollVote' | 'groupInvited')[];
+          excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'achievementEarned' | 'app' | 'test' | 'pollVote' | 'groupInvited')[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Notification'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/notifications-grouped
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:notifications*
+   */
+  'i/notifications-grouped': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default true */
+          markAsRead?: boolean;
+          includeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'achievementEarned' | 'app' | 'test' | 'pollVote' | 'groupInvited')[];
+          excludeTypes?: ('note' | 'follow' | 'mention' | 'reply' | 'renote' | 'quote' | 'reaction' | 'pollEnded' | 'receiveFollowRequest' | 'followRequestAccepted' | 'achievementEarned' | 'app' | 'test' | 'pollVote' | 'groupInvited')[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Notification'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/page-likes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:page-likes*
+   */
+  'i/page-likes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** Format: id */
+              id: string;
+              page: components['schemas']['Page'];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/pages
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:pages*
+   */
+  'i/pages': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Page'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/pin
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/pin': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['MeDetailed'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/read-all-unread-notes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/read-all-unread-notes': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/read-announcement
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/read-announcement': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          announcementId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/get-all
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/get-all': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/get-detail
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/get-detail': {
+    requestBody: {
+      content: {
+        'application/json': {
+          key: string;
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/get
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/get': {
+    requestBody: {
+      content: {
+        'application/json': {
+          key: string;
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/keys-with-type
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/keys-with-type': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/keys
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/keys': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/remove
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/remove': {
+    requestBody: {
+      content: {
+        'application/json': {
+          key: string;
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/registry/set
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'i/registry/set': {
+    requestBody: {
+      content: {
+        'application/json': {
+          key: string;
+          value: unknown;
+          /** @default [] */
+          scope: string[];
+          domain?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/unpin
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/unpin': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['MeDetailed'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name?: string | null;
+          description?: string | null;
+          location?: string | null;
+          birthday?: string | null;
+          /** @enum {string|null} */
+          lang?: null | 'ach' | 'ady' | 'af' | 'af-NA' | 'af-ZA' | 'ak' | 'ar' | 'ar-AR' | 'ar-MA' | 'ar-SA' | 'ay-BO' | 'az' | 'az-AZ' | 'be-BY' | 'bg' | 'bg-BG' | 'bn' | 'bn-IN' | 'bn-BD' | 'br' | 'bs-BA' | 'ca' | 'ca-ES' | 'cak' | 'ck-US' | 'cs' | 'cs-CZ' | 'cy' | 'cy-GB' | 'da' | 'da-DK' | 'de' | 'de-AT' | 'de-DE' | 'de-CH' | 'dsb' | 'el' | 'el-GR' | 'en' | 'en-GB' | 'en-AU' | 'en-CA' | 'en-IE' | 'en-IN' | 'en-PI' | 'en-SG' | 'en-UD' | 'en-US' | 'en-ZA' | 'en@pirate' | 'eo' | 'eo-EO' | 'es' | 'es-AR' | 'es-419' | 'es-CL' | 'es-CO' | 'es-EC' | 'es-ES' | 'es-LA' | 'es-NI' | 'es-MX' | 'es-US' | 'es-VE' | 'et' | 'et-EE' | 'eu' | 'eu-ES' | 'fa' | 'fa-IR' | 'fb-LT' | 'ff' | 'fi' | 'fi-FI' | 'fo' | 'fo-FO' | 'fr' | 'fr-CA' | 'fr-FR' | 'fr-BE' | 'fr-CH' | 'fy-NL' | 'ga' | 'ga-IE' | 'gd' | 'gl' | 'gl-ES' | 'gn-PY' | 'gu-IN' | 'gv' | 'gx-GR' | 'he' | 'he-IL' | 'hi' | 'hi-IN' | 'hr' | 'hr-HR' | 'hsb' | 'ht' | 'hu' | 'hu-HU' | 'hy' | 'hy-AM' | 'id' | 'id-ID' | 'is' | 'is-IS' | 'it' | 'it-IT' | 'ja' | 'ja-JP' | 'jv-ID' | 'ka-GE' | 'kk-KZ' | 'km' | 'kl' | 'km-KH' | 'kab' | 'kn' | 'kn-IN' | 'ko' | 'ko-KR' | 'ku-TR' | 'kw' | 'la' | 'la-VA' | 'lb' | 'li-NL' | 'lt' | 'lt-LT' | 'lv' | 'lv-LV' | 'mai' | 'mg-MG' | 'mk' | 'mk-MK' | 'ml' | 'ml-IN' | 'mn-MN' | 'mr' | 'mr-IN' | 'ms' | 'ms-MY' | 'mt' | 'mt-MT' | 'my' | 'no' | 'nb' | 'nb-NO' | 'ne' | 'ne-NP' | 'nl' | 'nl-BE' | 'nl-NL' | 'nn-NO' | 'oc' | 'or-IN' | 'pa' | 'pa-IN' | 'pl' | 'pl-PL' | 'ps-AF' | 'pt' | 'pt-BR' | 'pt-PT' | 'qu-PE' | 'rm-CH' | 'ro' | 'ro-RO' | 'ru' | 'ru-RU' | 'sa-IN' | 'se-NO' | 'sh' | 'si-LK' | 'sk' | 'sk-SK' | 'sl' | 'sl-SI' | 'so-SO' | 'sq' | 'sq-AL' | 'sr' | 'sr-RS' | 'su' | 'sv' | 'sv-SE' | 'sw' | 'sw-KE' | 'ta' | 'ta-IN' | 'te' | 'te-IN' | 'tg' | 'tg-TJ' | 'th' | 'th-TH' | 'fil' | 'tlh' | 'tr' | 'tr-TR' | 'tt-RU' | 'uk' | 'uk-UA' | 'ur' | 'ur-PK' | 'uz' | 'uz-UZ' | 'vi' | 'vi-VN' | 'xh-ZA' | 'yi' | 'yi-DE' | 'zh' | 'zh-Hans' | 'zh-Hant' | 'zh-CN' | 'zh-HK' | 'zh-SG' | 'zh-TW' | 'zu-ZA';
+          /** Format: misskey:id */
+          avatarId?: string | null;
+          avatarDecorations?: ({
+              /** Format: misskey:id */
+              id: string;
+              angle?: number | null;
+              flipH?: boolean | null;
+            })[];
+          /** Format: misskey:id */
+          bannerId?: string | null;
+          fields?: {
+              name: string;
+              value: string;
+            }[];
+          isLocked?: boolean;
+          isExplorable?: boolean;
+          hideOnlineStatus?: boolean;
+          publicReactions?: boolean;
+          carefulBot?: boolean;
+          autoAcceptFollowed?: boolean;
+          noCrawle?: boolean;
+          preventAiLearning?: boolean;
+          isBot?: boolean;
+          isCat?: boolean;
+          injectFeaturedNote?: boolean;
+          receiveAnnouncementEmail?: boolean;
+          alwaysMarkNsfw?: boolean;
+          autoSensitive?: boolean;
+          /** @enum {string} */
+          ffVisibility?: 'public' | 'followers' | 'private';
+          /** Format: misskey:id */
+          pinnedPageId?: string | null;
+          mutedWords?: (string[] | string)[];
+          hardMutedWords?: (string[] | string)[];
+          mutedInstances?: string[];
+          notificationRecieveConfig?: Record<string, never>;
+          emailNotificationTypes?: string[];
+          alsoKnownAs?: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['MeDetailed'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/webhooks/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/webhooks/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          url: string;
+          /** @default */
+          secret?: string;
+          on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/webhooks/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'i/webhooks/list': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/webhooks/show
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'i/webhooks/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          webhookId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/webhooks/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/webhooks/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          webhookId: string;
+          name: string;
+          url: string;
+          /** @default */
+          secret?: string;
+          on: ('mention' | 'unfollow' | 'follow' | 'followed' | 'note' | 'reply' | 'renote' | 'reaction')[];
+          active: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * i/webhooks/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'i/webhooks/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          webhookId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * invite/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'invite/create': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /** @example GR6S02ERUA5VR */
+            code: string;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * invite/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'invite/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          inviteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * invite/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'invite/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 30 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['InviteCode'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * invite/limit
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'invite/limit': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            remaining: number | null;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * meta
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  meta: {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default true */
+          detail?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            maintainerName: string | null;
+            maintainerEmail: string | null;
+            version: string;
+            name: string;
+            shortName: string | null;
+            /**
+             * Format: url
+             * @example https://misskey.example.com
+             */
+            uri: string;
+            description: string | null;
+            langs: string[];
+            tosUrl: string | null;
+            /** @default https://github.com/misskey-dev/misskey */
+            repositoryUrl: string;
+            /** @default https://github.com/misskey-dev/misskey/issues/new */
+            feedbackUrl: string;
+            defaultDarkTheme: string | null;
+            defaultLightTheme: string | null;
+            disableRegistration: boolean;
+            cacheRemoteFiles: boolean;
+            cacheRemoteSensitiveFiles: boolean;
+            emailRequiredForSignup: boolean;
+            enableHcaptcha: boolean;
+            hcaptchaSiteKey: string | null;
+            enableRecaptcha: boolean;
+            recaptchaSiteKey: string | null;
+            enableTurnstile: boolean;
+            turnstileSiteKey: string | null;
+            swPublickey: string | null;
+            /** @default /assets/ai.png */
+            mascotImageUrl: string;
+            bannerUrl: string;
+            serverErrorImageUrl: string | null;
+            infoImageUrl: string | null;
+            notFoundImageUrl: string | null;
+            iconUrl: string | null;
+            maxNoteTextLength: number;
+            ads: {
+                place: string;
+                /** Format: url */
+                url: string;
+                /** Format: url */
+                imageUrl: string;
+              }[];
+            /** @default 0 */
+            notesPerOneAd: number;
+            /** @example false */
+            requireSetup: boolean;
+            enableEmail: boolean;
+            enableServiceWorker: boolean;
+            translatorAvailable: boolean;
+            proxyAccountName: string | null;
+            mediaProxy: string;
+            features?: {
+              registration: boolean;
+              localTimeline: boolean;
+              globalTimeline: boolean;
+              hcaptcha: boolean;
+              recaptcha: boolean;
+              objectStorage: boolean;
+              serviceWorker: boolean;
+              /** @default true */
+              miauth?: boolean;
+            };
+            backgroundImageUrl: string | null;
+            impressumUrl: string | null;
+            logoImageUrl: string | null;
+            privacyPolicyUrl: string | null;
+            serverRules: string[];
+            themeColor: string | null;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * emojis
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  emojis: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            emojis: components['schemas']['EmojiSimple'][];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * emoji
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  emoji: {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['EmojiDetailed'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * mute/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:mutes*
+   */
+  'mute/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @description A Unix Epoch timestamp that must lie in the future. `null` means an indefinite mute. */
+          expiresAt?: number | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * mute/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:mutes*
+   */
+  'mute/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * mute/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:mutes*
+   */
+  'mute/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 30 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Muting'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * renote-mute/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:mutes*
+   */
+  'renote-mute/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * renote-mute/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:mutes*
+   */
+  'renote-mute/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * renote-mute/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:mutes*
+   */
+  'renote-mute/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 30 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['RenoteMuting'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * my/apps
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'my/apps': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['App'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  notes: {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default false */
+          local?: boolean;
+          reply?: boolean;
+          renote?: boolean;
+          withFiles?: boolean;
+          poll?: boolean;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/children
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/children': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/clips
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/clips': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/conversation
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/conversation': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notes*
+   */
+  'notes/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /**
+           * @default public
+           * @enum {string}
+           */
+          visibility?: 'public' | 'home' | 'followers' | 'specified';
+          visibleUserIds?: string[];
+          cw?: string | null;
+          /** @default false */
+          localOnly?: boolean;
+          /**
+           * @default null
+           * @enum {string|null}
+           */
+          reactionAcceptance?: null | 'likeOnly' | 'likeOnlyForRemote' | 'nonSensitiveOnly' | 'nonSensitiveOnlyForLocalLikeOnlyForRemote';
+          /** @default false */
+          noExtractMentions?: boolean;
+          /** @default false */
+          noExtractHashtags?: boolean;
+          /** @default false */
+          noExtractEmojis?: boolean;
+          /** Format: misskey:id */
+          replyId?: string | null;
+          /** Format: misskey:id */
+          renoteId?: string | null;
+          /** Format: misskey:id */
+          channelId?: string | null;
+          text?: string | null;
+          fileIds?: string[];
+          mediaIds?: string[];
+          poll?: ({
+            choices: string[];
+            multiple?: boolean;
+            expiresAt?: number | null;
+            expiredAfter?: number | null;
+          }) | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            createdNote: components['schemas']['Note'];
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notes*
+   */
+  'notes/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/favorites/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:favorites*
+   */
+  'notes/favorites/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/favorites/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:favorites*
+   */
+  'notes/favorites/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/featured
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/featured': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** Format: misskey:id */
+          channelId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/global-timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/global-timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default false */
+          withFiles?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/hybrid-timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/hybrid-timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+          /** @default true */
+          includeMyRenotes?: boolean;
+          /** @default true */
+          includeRenotedMyNotes?: boolean;
+          /** @default true */
+          includeLocalRenotes?: boolean;
+          /** @default false */
+          withFiles?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+          /** @default false */
+          withReplies?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/local-timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/local-timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default false */
+          withFiles?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+          /** @default false */
+          withReplies?: boolean;
+          /** @default false */
+          excludeNsfw?: boolean;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/mentions
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/mentions': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default false */
+          following?: boolean;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          visibility?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/polls/recommendation
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/polls/recommendation': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/polls/vote
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:votes*
+   */
+  'notes/polls/vote': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          choice: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/reactions
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/reactions': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          type?: string | null;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['NoteReaction'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/reactions/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:reactions*
+   */
+  'notes/reactions/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          reaction: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/reactions/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:reactions*
+   */
+  'notes/reactions/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/renotes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/renotes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/replies
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/replies': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/search-by-tag
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/search-by-tag': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default null */
+          reply?: boolean | null;
+          /** @default null */
+          renote?: boolean | null;
+          /**
+           * @description Only show notes that have attached files.
+           * @default false
+           */
+          withFiles?: boolean;
+          /** @default null */
+          poll?: boolean | null;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+          tag?: string;
+          /** @description The outer arrays are chained with OR, the inner arrays are chained with AND. */
+          query?: string[][];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/search
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/search': {
+    requestBody: {
+      content: {
+        'application/json': {
+          query: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+          /** @description The local host is represented with `.`. */
+          host?: string;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          userId?: string | null;
+          /**
+           * Format: misskey:id
+           * @default null
+           */
+          channelId?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'notes/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/state
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/state': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            isFavorited: boolean;
+            isMutedThread: boolean;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/thread-muting/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'notes/thread-muting/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/thread-muting/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'notes/thread-muting/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+          /** @default true */
+          includeMyRenotes?: boolean;
+          /** @default true */
+          includeRenotedMyNotes?: boolean;
+          /** @default true */
+          includeLocalRenotes?: boolean;
+          /** @default false */
+          withFiles?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/translate
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/translate': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+          targetLang: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': Record<string, never>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/unrenote
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notes*
+   */
+  'notes/unrenote': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notes/user-list-timeline
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'notes/user-list-timeline': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+          /** @default true */
+          includeMyRenotes?: boolean;
+          /** @default true */
+          includeRenotedMyNotes?: boolean;
+          /** @default true */
+          includeLocalRenotes?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+          /**
+           * @description Only show notes that have attached files.
+           * @default false
+           */
+          withFiles?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notifications/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notifications*
+   */
+  'notifications/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          body: string;
+          header?: string | null;
+          icon?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notifications/mark-all-as-read
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notifications*
+   */
+  'notifications/mark-all-as-read': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * notifications/test-notification
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:notifications*
+   */
+  'notifications/test-notification': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:pages*
+   */
+  'pages/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          title: string;
+          name: string;
+          summary?: string | null;
+          content: {
+              [key: string]: unknown;
+            }[];
+          variables: {
+              [key: string]: unknown;
+            }[];
+          script: string;
+          /** Format: misskey:id */
+          eyeCatchingImageId?: string | null;
+          /**
+           * @default sans-serif
+           * @enum {string}
+           */
+          font?: 'serif' | 'sans-serif';
+          /** @default false */
+          alignCenter?: boolean;
+          /** @default false */
+          hideTitleWhenPinned?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Page'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:pages*
+   */
+  'pages/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          pageId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/featured
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'pages/featured': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Page'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/like
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:page-likes*
+   */
+  'pages/like': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          pageId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'pages/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          pageId?: string;
+          name?: string;
+          username?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Page'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/unlike
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:page-likes*
+   */
+  'pages/unlike': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          pageId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pages/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:pages*
+   */
+  'pages/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          pageId: string;
+          title: string;
+          name: string;
+          summary?: string | null;
+          content: {
+              [key: string]: unknown;
+            }[];
+          variables: {
+              [key: string]: unknown;
+            }[];
+          script: string;
+          /** Format: misskey:id */
+          eyeCatchingImageId?: string | null;
+          /** @enum {string} */
+          font?: 'serif' | 'sans-serif';
+          alignCenter?: boolean;
+          hideTitleWhenPinned?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/create
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:flash*
+   */
+  'flash/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          title: string;
+          summary: string;
+          script: string;
+          permissions: string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/delete
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:flash*
+   */
+  'flash/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          flashId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/featured
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'flash/featured': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Flash'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/like
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:flash-likes*
+   */
+  'flash/like': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          flashId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'flash/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          flashId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Flash'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/unlike
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:flash-likes*
+   */
+  'flash/unlike': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          flashId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/update
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:flash*
+   */
+  'flash/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          flashId: string;
+          title: string;
+          summary: string;
+          script: string;
+          permissions: string[];
+          /** @enum {string} */
+          visibility?: 'public' | 'private';
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/my
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:flash*
+   */
+  'flash/my': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Flash'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * flash/my-likes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:flash-likes*
+   */
+  'flash/my-likes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              /** Format: id */
+              id: string;
+              flash: components['schemas']['Flash'];
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * ping
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  ping: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            pong: number;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * pinned-users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'pinned-users': {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * promo/read
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'promo/read': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          noteId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * roles/list
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'roles/list': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * roles/show
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'roles/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * roles/users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'roles/users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * roles/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'roles/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          roleId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * request-reset-password
+   * @description Request a users password to be reset.
+   *
+   * **Credential required**: *No*
+   */
+  'request-reset-password': {
+    requestBody: {
+      content: {
+        'application/json': {
+          username: string;
+          email: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * reset-db
+   * @description Only available when running with <code>NODE_ENV=testing</code>. Reset the database and flush Redis.
+   *
+   * **Credential required**: *No*
+   */
+  'reset-db': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * reset-password
+   * @description Complete the password reset that was previously requested.
+   *
+   * **Credential required**: *No*
+   */
+  'reset-password': {
+    requestBody: {
+      content: {
+        'application/json': {
+          token: string;
+          password: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * server-info
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'server-info': {
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * stats
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  stats: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            notesCount: number;
+            originalNotesCount: number;
+            usersCount: number;
+            originalUsersCount: number;
+            instances: number;
+            driveUsageLocal: number;
+            driveUsageRemote: number;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * sw/show-registration
+   * @description Check push notification registration exists.
+   *
+   * **Credential required**: *Yes*
+   */
+  'sw/show-registration': {
+    requestBody: {
+      content: {
+        'application/json': {
+          endpoint: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            userId: string;
+            endpoint: string;
+            sendReadMessage: boolean;
+          } | null;
+        };
+      };
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * sw/update-registration
+   * @description Update push notification registration.
+   *
+   * **Credential required**: *Yes*
+   */
+  'sw/update-registration': {
+    requestBody: {
+      content: {
+        'application/json': {
+          endpoint: string;
+          sendReadMessage?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            userId: string;
+            endpoint: string;
+            sendReadMessage: boolean;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * sw/register
+   * @description Register to receive push notifications.
+   *
+   * **Credential required**: *Yes*
+   */
+  'sw/register': {
+    requestBody: {
+      content: {
+        'application/json': {
+          endpoint: string;
+          auth: string;
+          publickey: string;
+          /** @default false */
+          sendReadMessage?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            /** @enum {string} */
+            state?: 'already-subscribed' | 'subscribed';
+            key: string | null;
+            userId: string;
+            endpoint: string;
+            sendReadMessage: boolean;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * sw/unregister
+   * @description Unregister from receiving push notifications.
+   *
+   * **Credential required**: *No*
+   */
+  'sw/unregister': {
+    requestBody: {
+      content: {
+        'application/json': {
+          endpoint: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * test
+   * @description Endpoint for testing input validation.
+   *
+   * **Credential required**: *No*
+   */
+  test: {
+    requestBody: {
+      content: {
+        'application/json': {
+          required: boolean;
+          string?: string;
+          /** @default hello */
+          default?: string;
+          /** @default hello */
+          nullableDefault?: string | null;
+          /** Format: misskey:id */
+          id?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * username/available
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'username/available': {
+    requestBody: {
+      content: {
+        'application/json': {
+          username: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+            available: boolean;
+          };
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  users: {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+          /** @enum {string} */
+          sort?: '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+updatedAt' | '-updatedAt';
+          /**
+           * @default all
+           * @enum {string}
+           */
+          state?: 'all' | 'alive';
+          /**
+           * @default local
+           * @enum {string}
+           */
+          origin?: 'combined' | 'local' | 'remote';
+          /**
+           * @description The local host is represented with `null`.
+           * @default null
+           */
+          hostname?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/clips
+   * @description Show all clips this user owns.
+   *
+   * **Credential required**: *No*
+   */
+  'users/clips': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Clip'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/followers
+   * @description Show everyone that follows this user.
+   *
+   * **Credential required**: *No*
+   */
+  'users/followers': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          userId?: string;
+          username?: string;
+          /** @description The local host is represented with `null`. */
+          host?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Following'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/following
+   * @description Show everyone that this user is following.
+   *
+   * **Credential required**: *No*
+   */
+  'users/following': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          userId?: string;
+          username?: string;
+          /** @description The local host is represented with `null`. */
+          host?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Following'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/gallery/posts
+   * @description Show all gallery posts by the given user.
+   *
+   * **Credential required**: *No*
+   */
+  'users/gallery/posts': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['GalleryPost'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/get-frequently-replied-users
+   * @description Get a list of other users that the specified user frequently replies to.
+   *
+   * **Credential required**: *No*
+   */
+  'users/get-frequently-replied-users': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': {
+              user: components['schemas']['UserDetailed'];
+              weight: number;
+            }[];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/featured-notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'users/featured-notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          untilId?: string;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/create
+   * @description Create a new list of users.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/create': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserList'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/delete
+   * @description Delete an existing list of users.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/delete': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/list
+   * @description Show all lists that the authenticated user has created.
+   *
+   * **Credential required**: *No* / **Permission**: *read:account*
+   */
+  'users/lists/list': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserList'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/pull
+   * @description Remove a user from a list.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/pull': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/push
+   * @description Add a user to an existing list.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/push': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/show
+   * @description Show the properties of a list.
+   *
+   * **Credential required**: *No* / **Permission**: *read:account*
+   */
+  'users/lists/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** @default false */
+          forPublic?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserList'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/favorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/lists/favorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/unfavorite
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/lists/unfavorite': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/update
+   * @description Update the properties of a list.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/update': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          name?: string;
+          isPublic?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserList'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/create-from-public
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/lists/create-from-public': {
+    requestBody: {
+      content: {
+        'application/json': {
+          name: string;
+          /** Format: misskey:id */
+          listId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserList'];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/update-membership
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/lists/update-membership': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** Format: misskey:id */
+          userId: string;
+          withReplies?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/lists/get-memberships
+   * @description No description provided.
+   *
+   * **Credential required**: *No* / **Permission**: *read:account*
+   */
+  'users/lists/get-memberships': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          listId: string;
+          /** @default false */
+          forPublic?: boolean;
+          /** @default 30 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/notes
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'users/notes': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default false */
+          withReplies?: boolean;
+          /** @default true */
+          withRenotes?: boolean;
+          /** @default false */
+          withChannelNotes?: boolean;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+          /** @default false */
+          withFiles?: boolean;
+          /** @default false */
+          excludeNsfw?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Note'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/pages
+   * @description Show all pages this user created.
+   *
+   * **Credential required**: *No*
+   */
+  'users/pages': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Page'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/flashs
+   * @description Show all flashs this user created.
+   *
+   * **Credential required**: *No*
+   */
+  'users/flashs': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['Flash'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/reactions
+   * @description Show all reactions this user made.
+   *
+   * **Credential required**: *No*
+   */
+  'users/reactions': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @default 10 */
+          limit?: number;
+          /** Format: misskey:id */
+          sinceId?: string;
+          /** Format: misskey:id */
+          untilId?: string;
+          sinceDate?: number;
+          untilDate?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['NoteReaction'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/recommendation
+   * @description Show users that the authenticated user might be interested to follow.
+   *
+   * **Credential required**: *Yes* / **Permission**: *read:account*
+   */
+  'users/recommendation': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default 0 */
+          offset?: number;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/relation
+   * @description Show the different kinds of relations between the authenticated user and the specified user(s).
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/relation': {
+    requestBody: {
+      content: {
+        'application/json': {
+          userId: string | string[];
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': OneOf<[{
+            /** Format: id */
+            id: string;
+            isFollowing: boolean;
+            hasPendingFollowRequestFromYou: boolean;
+            hasPendingFollowRequestToYou: boolean;
+            isFollowed: boolean;
+            isBlocking: boolean;
+            isBlocked: boolean;
+            isMuted: boolean;
+            isRenoteMuted: boolean;
+          }, {
+              /** Format: id */
+              id: string;
+              isFollowing: boolean;
+              hasPendingFollowRequestFromYou: boolean;
+              hasPendingFollowRequestToYou: boolean;
+              isFollowed: boolean;
+              isBlocking: boolean;
+              isBlocked: boolean;
+              isMuted: boolean;
+              isRenoteMuted: boolean;
+            }[]]>;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/report-abuse
+   * @description File a report.
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/report-abuse': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          comment: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/search-by-username-and-host
+   * @description Search for a user by username and/or host.
+   *
+   * **Credential required**: *No*
+   */
+  'users/search-by-username-and-host': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** @default 10 */
+          limit?: number;
+          /** @default true */
+          detail?: boolean;
+          username?: string | null;
+          host?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['User'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/search
+   * @description Search for users.
+   *
+   * **Credential required**: *No*
+   */
+  'users/search': {
+    requestBody: {
+      content: {
+        'application/json': {
+          query: string;
+          /** @default 0 */
+          offset?: number;
+          /** @default 10 */
+          limit?: number;
+          /**
+           * @default combined
+           * @enum {string}
+           */
+          origin?: 'local' | 'remote' | 'combined';
+          /** @default true */
+          detail?: boolean;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['User'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/show
+   * @description Show the properties of a user.
+   *
+   * **Credential required**: *No*
+   */
+  'users/show': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId?: string;
+          userIds?: string[];
+          username?: string;
+          /** @description The local host is represented with `null`. */
+          host?: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': components['schemas']['UserDetailed'] | components['schemas']['UserDetailed'][];
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/achievements
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'users/achievements': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * users/update-memo
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes* / **Permission**: *write:account*
+   */
+  'users/update-memo': {
+    requestBody: {
+      content: {
+        'application/json': {
+          /** Format: misskey:id */
+          userId: string;
+          /** @description A personal memo for the target user. If null or empty, delete the memo. */
+          memo: string | null;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * fetch-rss
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  'fetch-rss': {
+    requestBody: {
+      content: {
+        'application/json': {
+          url: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * fetch-external-resources
+   * @description No description provided.
+   *
+   * **Credential required**: *Yes*
+   */
+  'fetch-external-resources': {
+    requestBody: {
+      content: {
+        'application/json': {
+          url: string;
+          hash: string;
+        };
+      };
+    };
+    responses: {
+      /** @description OK (without any results) */
+      204: {
+        content: never;
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description To many requests */
+      429: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+  /**
+   * retention
+   * @description No description provided.
+   *
+   * **Credential required**: *No*
+   */
+  retention: {
+    responses: {
+      /** @description OK (with results) */
+      200: {
+        content: {
+          'application/json': unknown;
+        };
+      };
+      /** @description Client error */
+      400: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Authentication error */
+      401: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Forbidden error */
+      403: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description I'm Ai */
+      418: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+      /** @description Internal server error */
+      500: {
+        content: {
+          'application/json': components['schemas']['Error'];
+        };
+      };
+    };
+  };
+};
+
diff --git a/packages/misskey-js/src/entities.ts b/packages/misskey-js/src/entities.ts
index 2ddcf93f5d..b1d6b5c10f 100644
--- a/packages/misskey-js/src/entities.ts
+++ b/packages/misskey-js/src/entities.ts
@@ -1,455 +1,11 @@
 import { ModerationLogPayloads, notificationTypes } from './consts.js';
+import { Page, User, UserDetailed } from './autogen/models';
+export * from './autogen/entities';
+export * from './autogen/models';
 
 export type ID = string;
 export type DateString = string;
 
-type TODO = Record<string, any>;
-
-// NOTE: 極力この型を使うのは避け、UserLite か UserDetailed か明示するように
-export type User = UserLite | UserDetailed;
-
-export type UserLite = {
-	id: ID;
-	username: string;
-	host: string | null;
-	name: string | null;
-	onlineStatus: 'online' | 'active' | 'offline' | 'unknown';
-	avatarUrl: string;
-	avatarBlurhash: string;
-	avatarDecorations: {
-		id: ID;
-		url: string;
-		angle?: number;
-		flipH?: boolean;
-	}[];
-	emojis: {
-		name: string;
-		url: string;
-	}[];
-	instance?: {
-		name: Instance['name'];
-		softwareName: Instance['softwareName'];
-		softwareVersion: Instance['softwareVersion'];
-		iconUrl: Instance['iconUrl'];
-		faviconUrl: Instance['faviconUrl'];
-		themeColor: Instance['themeColor'];
-	};
-	isCat?: boolean;
-	isBot?: boolean;
-};
-
-export type UserDetailed = UserLite & {
-	alsoKnownAs: string[];
-	bannerBlurhash: string | null;
-	bannerColor: string | null;
-	bannerUrl: string | null;
-	birthday: string | null;
-	createdAt: DateString;
-	description: string | null;
-	ffVisibility: 'public' | 'followers' | 'private';
-	fields: {name: string; value: string}[];
-	verifiedLinks: string[];
-	followersCount: number;
-	followingCount: number;
-	hasPendingFollowRequestFromYou: boolean;
-	hasPendingFollowRequestToYou: boolean;
-	isAdmin: boolean;
-	isBlocked: boolean;
-	isBlocking: boolean;
-	isBot: boolean;
-	isCat: boolean;
-	isFollowed: boolean;
-	isFollowing: boolean;
-	isLocked: boolean;
-	isModerator: boolean;
-	isMuted: boolean;
-	isSilenced: boolean;
-	isSuspended: boolean;
-	lang: string | null;
-	lastFetchedAt?: DateString;
-	location: string | null;
-	movedTo: string;
-	notesCount: number;
-	pinnedNoteIds: ID[];
-	pinnedNotes: Note[];
-	pinnedPage: Page | null;
-	pinnedPageId: string | null;
-	publicReactions: boolean;
-	securityKeys: boolean;
-	twoFactorEnabled: boolean;
-	updatedAt: DateString | null;
-	uri: string | null;
-	url: string | null;
-	notify: 'normal' | 'none';
-};
-
-export type UserGroup = TODO;
-
-export type UserList = {
-	id: ID;
-	createdAt: DateString;
-	name: string;
-	userIds: User['id'][];
-};
-
-export type MeDetailed = UserDetailed & {
-	avatarId: DriveFile['id'];
-	bannerId: DriveFile['id'];
-	autoAcceptFollowed: boolean;
-	alwaysMarkNsfw: boolean;
-	carefulBot: boolean;
-	emailNotificationTypes: string[];
-	hasPendingReceivedFollowRequest: boolean;
-	hasUnreadAnnouncement: boolean;
-	hasUnreadAntenna: boolean;
-	hasUnreadMentions: boolean;
-	hasUnreadMessagingMessage: boolean;
-	hasUnreadNotification: boolean;
-	hasUnreadSpecifiedNotes: boolean;
-	unreadNotificationsCount: number;
-	hideOnlineStatus: boolean;
-	injectFeaturedNote: boolean;
-	integrations: Record<string, any>;
-	isDeleted: boolean;
-	isExplorable: boolean;
-	mutedWords: (string[] | string)[];
-	hardMutedWords: (string[] | string)[];
-	notificationRecieveConfig: {
-		[notificationType in typeof notificationTypes[number]]?: {
-			type: 'all';
-		} | {
-			type: 'never';
-		} | {
-			type: 'following';
-		} | {
-			type: 'follower';
-		} | {
-			type: 'mutualFollow';
-		} | {
-			type: 'list';
-			userListId: string;
-		};
-	};
-	noCrawle: boolean;
-	receiveAnnouncementEmail: boolean;
-	usePasswordLessLogin: boolean;
-	unreadAnnouncements: Announcement[];
-	twoFactorBackupCodesStock: 'full' | 'partial' | 'none';
-	[other: string]: any;
-};
-
-export type MeDetailedWithSecret = MeDetailed & {
-	email: string;
-	emailVerified: boolean;
-	securityKeysList: {
-		id: string;
-		name: string;
-		lastUsed: string;
-	}[];
-};
-
-export type MeSignup = MeDetailedWithSecret & {
-	token: string;
-};
-
-export type DriveFile = {
-	id: ID;
-	createdAt: DateString;
-	isSensitive: boolean;
-	name: string;
-	thumbnailUrl: string;
-	url: string;
-	type: string;
-	size: number;
-	md5: string;
-	blurhash: string;
-	comment: string | null;
-	properties: Record<string, any>;
-};
-
-export type DriveFolder = TODO;
-
-export type GalleryPost = {
-	id: ID;
-	createdAt: DateString;
-	updatedAt: DateString;
-	userId: User['id'];
-	user: User;
-	title: string;
-	description: string | null;
-	fileIds: DriveFile['id'][];
-	files: DriveFile[];
-	isSensitive: boolean;
-	likedCount: number;
-	isLiked?: boolean;
-};
-
-export type Note = {
-	id: ID;
-	createdAt: DateString;
-	text: string | null;
-	cw: string | null;
-	user: User;
-	userId: User['id'];
-	reply?: Note;
-	replyId: Note['id'];
-	renote?: Note;
-	renoteId: Note['id'];
-	files: DriveFile[];
-	fileIds: DriveFile['id'][];
-	visibility: 'public' | 'home' | 'followers' | 'specified';
-	visibleUserIds?: User['id'][];
-	channel?: Channel;
-	channelId?: Channel['id'];
-	localOnly?: boolean;
-	myReaction?: string;
-	reactions: Record<string, number>;
-	renoteCount: number;
-	repliesCount: number;
-	clippedCount?: number;
-	poll?: {
-		expiresAt: DateString | null;
-		multiple: boolean;
-		choices: {
-			isVoted: boolean;
-			text: string;
-			votes: number;
-		}[];
-	};
-	emojis: {
-		name: string;
-		url: string;
-	}[];
-	uri?: string;
-	url?: string;
-	isHidden?: boolean;
-};
-
-export type NoteReaction = {
-	id: ID;
-	createdAt: DateString;
-	user: UserLite;
-	type: string;
-};
-
-export type Notification = {
-	id: ID;
-	createdAt: DateString;
-	isRead: boolean;
-} & ({
-	type: 'reaction';
-	reaction: string;
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'reply';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'renote';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'quote';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'mention';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'note';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'pollEnded';
-	user: User;
-	userId: User['id'];
-	note: Note;
-} | {
-	type: 'follow';
-	user: User;
-	userId: User['id'];
-} | {
-	type: 'followRequestAccepted';
-	user: User;
-	userId: User['id'];
-} | {
-	type: 'receiveFollowRequest';
-	user: User;
-	userId: User['id'];
-} | {
-	type: 'groupInvited';
-	invitation: UserGroup;
-	user: User;
-	userId: User['id'];
-} | {
-	type: 'achievementEarned';
-	achievement: string;
-} | {
-	type: 'app';
-	header?: string | null;
-	body: string;
-	icon?: string | null;
-} | {
-	type: 'test';
-});
-
-export type MessagingMessage = {
-	id: ID;
-	createdAt: DateString;
-	file: DriveFile | null;
-	fileId: DriveFile['id'] | null;
-	isRead: boolean;
-	reads: User['id'][];
-	text: string | null;
-	user: User;
-	userId: User['id'];
-	recipient?: User | null;
-	recipientId: User['id'] | null;
-	group?: UserGroup | null;
-	groupId: UserGroup['id'] | null;
-};
-
-export type CustomEmoji = {
-	id: string;
-	name: string;
-	url: string;
-	category: string;
-	aliases: string[];
-};
-
-export type LiteInstanceMetadata = {
-	maintainerName: string | null;
-	maintainerEmail: string | null;
-	version: string;
-	name: string | null;
-	shortName: string | null;
-	uri: string;
-	description: string | null;
-	langs: string[];
-	tosUrl: string | null;
-	repositoryUrl: string;
-	feedbackUrl: string;
-	impressumUrl: string | null;
-	privacyPolicyUrl: string | null;
-	disableRegistration: boolean;
-	disableLocalTimeline: boolean;
-	disableGlobalTimeline: boolean;
-	driveCapacityPerLocalUserMb: number;
-	driveCapacityPerRemoteUserMb: number;
-	emailRequiredForSignup: boolean;
-	enableHcaptcha: boolean;
-	hcaptchaSiteKey: string | null;
-	enableRecaptcha: boolean;
-	recaptchaSiteKey: string | null;
-	enableTurnstile: boolean;
-	turnstileSiteKey: string | null;
-	swPublickey: string | null;
-	themeColor: string | null;
-	mascotImageUrl: string | null;
-	bannerUrl: string | null;
-	serverErrorImageUrl: string | null;
-	infoImageUrl: string | null;
-	notFoundImageUrl: string | null;
-	iconUrl: string | null;
-	backgroundImageUrl: string | null;
-	logoImageUrl: string | null;
-	maxNoteTextLength: number;
-	enableEmail: boolean;
-	enableTwitterIntegration: boolean;
-	enableGithubIntegration: boolean;
-	enableDiscordIntegration: boolean;
-	enableServiceWorker: boolean;
-	emojis: CustomEmoji[];
-	defaultDarkTheme: string | null;
-	defaultLightTheme: string | null;
-	ads: {
-		id: ID;
-		ratio: number;
-		place: string;
-		url: string;
-		imageUrl: string;
-	}[];
-	notesPerOneAd: number;
-	translatorAvailable: boolean;
-	serverRules: string[];
-};
-
-export type DetailedInstanceMetadata = LiteInstanceMetadata & {
-	pinnedPages: string[];
-	pinnedClipId: string | null;
-	cacheRemoteFiles: boolean;
-	cacheRemoteSensitiveFiles: boolean;
-	requireSetup: boolean;
-	proxyAccountName: string | null;
-	features: Record<string, any>;
-};
-
-export type InstanceMetadata = LiteInstanceMetadata | DetailedInstanceMetadata;
-
-export type AdminInstanceMetadata = DetailedInstanceMetadata & {
-	// TODO: There are more fields.
-	blockedHosts: string[];
-	silencedHosts: string[];
-	app192IconUrl: string | null;
-	app512IconUrl: string | null;
-	manifestJsonOverride: string;
-};
-
-export type ServerInfo = {
-	machine: string;
-	cpu: {
-		model: string;
-		cores: number;
-	};
-	mem: {
-		total: number;
-	};
-	fs: {
-		total: number;
-		used: number;
-	};
-};
-
-export type Stats = {
-	notesCount: number;
-	originalNotesCount: number;
-	usersCount: number;
-	originalUsersCount: number;
-	instances: number;
-	driveUsageLocal: number;
-	driveUsageRemote: number;
-};
-
-export type Page = {
-	id: ID;
-	createdAt: DateString;
-	updatedAt: DateString;
-	userId: User['id'];
-	user: User;
-	content: Record<string, any>[];
-	variables: Record<string, any>[];
-	title: string;
-	name: string;
-	summary: string | null;
-	hideTitleWhenPinned: boolean;
-	alignCenter: boolean;
-	font: string;
-	script: string;
-	eyeCatchingImageId: DriveFile['id'] | null;
-	eyeCatchingImage: DriveFile | null;
-	attachedFiles: any;
-	likedCount: number;
-	isLiked?: boolean;
-};
-
 export type PageEvent = {
 	pageId: Page['id'];
 	event: string;
@@ -458,166 +14,6 @@ export type PageEvent = {
 	user: User;
 };
 
-export type Announcement = {
-	id: ID;
-	createdAt: DateString;
-	updatedAt: DateString | null;
-	text: string;
-	title: string;
-	imageUrl: string | null;
-	display: 'normal' | 'banner' | 'dialog';
-	icon: 'info' | 'warning' | 'error' | 'success';
-	needConfirmationToRead: boolean;
-	forYou: boolean;
-	isRead?: boolean;
-};
-
-export type Antenna = {
-	id: ID;
-	createdAt: DateString;
-	name: string;
-	keywords: string[][]; // TODO
-	excludeKeywords: string[][]; // TODO
-	src: 'home' | 'all' | 'users' | 'list' | 'group';
-	userListId: ID | null; // TODO
-	userGroupId: ID | null; // TODO
-	users: string[]; // TODO
-	caseSensitive: boolean;
-	localOnly: boolean;
-	notify: boolean;
-	withReplies: boolean;
-	withFile: boolean;
-	hasUnreadNote: boolean;
-};
-
-export type App = TODO;
-
-export type AuthSession = {
-	id: ID;
-	app: App;
-	token: string;
-};
-
-export type Ad = TODO;
-
-export type Clip = TODO;
-
-export type NoteFavorite = {
-	id: ID;
-	createdAt: DateString;
-	noteId: Note['id'];
-	note: Note;
-};
-
-export type FollowRequest = {
-	id: ID;
-	follower: User;
-	followee: User;
-};
-
-export type Channel = {
-	id: ID;
-	lastNotedAt: Date | null;
-	userId: User['id'] | null;
-	user: User | null;
-	name: string;
-	description: string | null;
-	bannerId: DriveFile['id'] | null;
-	banner: DriveFile | null;
-	pinnedNoteIds: string[];
-	color: string;
-	isArchived: boolean;
-	notesCount: number;
-	usersCount: number;
-	isSensitive: boolean;
-	allowRenoteToExternal: boolean;
-};
-
-export type Following = {
-	id: ID;
-	createdAt: DateString;
-	followerId: User['id'];
-	followeeId: User['id'];
-};
-
-export type FollowingFolloweePopulated = Following & {
-	followee: UserDetailed;
-};
-
-export type FollowingFollowerPopulated = Following & {
-	follower: UserDetailed;
-};
-
-export type Blocking = {
-	id: ID;
-	createdAt: DateString;
-	blockeeId: User['id'];
-	blockee: UserDetailed;
-};
-
-export type Instance = {
-	id: ID;
-	firstRetrievedAt: DateString;
-	host: string;
-	usersCount: number;
-	notesCount: number;
-	followingCount: number;
-	followersCount: number;
-	driveUsage: number;
-	driveFiles: number;
-	latestRequestSentAt: DateString | null;
-	latestStatus: number | null;
-	latestRequestReceivedAt: DateString | null;
-	lastCommunicatedAt: DateString;
-	isNotResponding: boolean;
-	isSuspended: boolean;
-	isSilenced: boolean;
-	isBlocked: boolean;
-	softwareName: string | null;
-	softwareVersion: string | null;
-	openRegistrations: boolean | null;
-	name: string | null;
-	description: string | null;
-	maintainerName: string | null;
-	maintainerEmail: string | null;
-	iconUrl: string | null;
-	faviconUrl: string | null;
-	themeColor: string | null;
-	infoUpdatedAt: DateString | null;
-};
-
-export type Signin = {
-	id: ID;
-	createdAt: DateString;
-	ip: string;
-	headers: Record<string, any>;
-	success: boolean;
-};
-
-export type Invite = {
-	id: ID;
-	code: string;
-	expiresAt: DateString | null;
-	createdAt: DateString;
-	createdBy: UserLite | null;
-	usedBy: UserLite | null;
-	usedAt: DateString | null;
-	used: boolean;
-}
-
-export type InviteLimit = {
-	remaining: number;
-}
-
-export type UserSorting =
-	| '+follower'
-	| '-follower'
-	| '+createdAt'
-	| '-createdAt'
-	| '+updatedAt'
-	| '-updatedAt';
-export type OriginType = 'combined' | 'local' | 'remote';
-
 export type ModerationLog = {
 	id: ID;
 	createdAt: DateString;
diff --git a/packages/misskey-js/src/streaming.types.ts b/packages/misskey-js/src/streaming.types.ts
index 96ac7787e1..7981c280f6 100644
--- a/packages/misskey-js/src/streaming.types.ts
+++ b/packages/misskey-js/src/streaming.types.ts
@@ -1,4 +1,5 @@
-import type { Antenna, CustomEmoji, DriveFile, MeDetailed, MessagingMessage, Note, Notification, PageEvent, User, UserGroup } from './entities.js';
+import { Antenna, DriveFile, EmojiDetailed, MeDetailed, Note, User, Notification } from './autogen/models.js';
+import { PageEvent } from './entities.js';
 
 type FIXME = any;
 
@@ -22,9 +23,6 @@ export type Channels = {
 			readAllUnreadMentions: () => void;
 			unreadSpecifiedNote: (payload: Note['id']) => void;
 			readAllUnreadSpecifiedNotes: () => void;
-			readAllMessagingMessages: () => void;
-			messagingMessage: (payload: MessagingMessage) => void;
-			unreadMessagingMessage: (payload: MessagingMessage) => void;
 			readAllAntennas: () => void;
 			unreadAntenna: (payload: Antenna) => void;
 			readAllAnnouncements: () => void;
@@ -70,23 +68,6 @@ export type Channels = {
 		};
 		receives: null;
 	};
-	messaging: {
-		params: {
-			otherparty?: User['id'] | null;
-			group?: UserGroup['id'] | null;
-		};
-		events: {
-			message: (payload: MessagingMessage) => void;
-			deleted: (payload: MessagingMessage['id']) => void;
-			read: (payload: MessagingMessage['id'][]) => void;
-			typers: (payload: User[]) => void;
-		};
-		receives: {
-			read: {
-				id: MessagingMessage['id'];
-			};
-		};
-	};
 	serverStats: {
 		params: null;
 		events: {
@@ -145,6 +126,6 @@ export type NoteUpdatedEvent = {
 export type BroadcastEvents = {
 	noteUpdated: (payload: NoteUpdatedEvent) => void;
 	emojiAdded: (payload: {
-		emoji: CustomEmoji;
+		emoji: EmojiDetailed;
 	}) => void;
 };
diff --git a/packages/misskey-js/test-d/api.ts b/packages/misskey-js/test-d/api.ts
index ce793f6fd1..1c2a142e8b 100644
--- a/packages/misskey-js/test-d/api.ts
+++ b/packages/misskey-js/test-d/api.ts
@@ -8,7 +8,7 @@ describe('API', () => {
 			credential: 'TOKEN'
 		});
 		const res = await cli.request('meta', { detail: true });
-		expectType<Misskey.entities.DetailedInstanceMetadata>(res);
+		expectType<Misskey.entities.MetaResponse>(res);
 	});
 
 	test('conditional respose type (meta)', async () => {
@@ -18,16 +18,16 @@ describe('API', () => {
 		});
 
 		const res = await cli.request('meta', { detail: true });
-		expectType<Misskey.entities.DetailedInstanceMetadata>(res);
+		expectType<Misskey.entities.MetaResponse>(res);
 
 		const res2 = await cli.request('meta', { detail: false });
-		expectType<Misskey.entities.LiteInstanceMetadata>(res2);
+		expectType<Misskey.entities.MetaResponse>(res2);
 
 		const res3 = await cli.request('meta', { });
-		expectType<Misskey.entities.LiteInstanceMetadata>(res3);
+		expectType<Misskey.entities.MetaResponse>(res3);
 
 		const res4 = await cli.request('meta', { detail: true as boolean });
-		expectType<Misskey.entities.LiteInstanceMetadata | Misskey.entities.DetailedInstanceMetadata>(res4);
+		expectType<Misskey.entities.MetaResponse>(res4);
 	});
 
 	test('conditional respose type (users/show)', async () => {
diff --git a/packages/misskey-js/test-d/streaming.ts b/packages/misskey-js/test-d/streaming.ts
index 853f376e6c..6b186bd45a 100644
--- a/packages/misskey-js/test-d/streaming.ts
+++ b/packages/misskey-js/test-d/streaming.ts
@@ -9,18 +9,4 @@ describe('Streaming', () => {
 			expectType<Misskey.entities.Notification>(notification);
 		});
 	});
-
-	test('params type', async () => {
-		const stream = new Misskey.Stream('https://misskey.test', { token: 'TOKEN' });
-		// TODO: 「stream.useChannel の第二引数として受け入れる型が
-		// {
-		//   otherparty?: User['id'] | null;
-		//   group?: UserGroup['id'] | null;
-		// }
-		// になっている」というテストを行いたいけどtsdでの書き方がわからない
-		const messagingChannel = stream.useChannel('messaging', { otherparty: 'aaa' });
-		messagingChannel.on('message', message => {
-			expectType<Misskey.entities.MessagingMessage>(message);
-		});
-	});
 });
diff --git a/packages/misskey-js/tsconfig.json b/packages/misskey-js/tsconfig.json
index e2b755075b..f56b65e868 100644
--- a/packages/misskey-js/tsconfig.json
+++ b/packages/misskey-js/tsconfig.json
@@ -1,5 +1,5 @@
 {
-	"$schema": "http://json.schemastore.org/tsconfig",
+	"$schema": "https://json.schemastore.org/tsconfig",
 	"compilerOptions": {
 		"target": "ES2022",
 		"module": "nodenext",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 68d70ba4c1..8831c43036 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -50,6 +50,9 @@ importers:
       eslint:
         specifier: 8.54.0
         version: 8.54.0
+      ncp:
+        specifier: 2.0.0
+        version: 2.0.0
       start-server-and-test:
         specifier: 2.0.3
         version: 2.0.3
@@ -358,7 +361,7 @@ importers:
         version: 2.1.0
       summaly:
         specifier: github:misskey-dev/summaly
-        version: github.com/misskey-dev/summaly/d2d8db49943ccb201c1b1b283e9d0a630519fac7
+        version: github.com/misskey-dev/summaly/d2a3e07205c3c9769bc5a7b42031c8884b5a25c8
       systeminformation:
         specifier: 5.21.18
         version: 5.21.18
@@ -877,10 +880,10 @@ importers:
         version: 7.5.3
       '@storybook/vue3':
         specifier: 7.5.3
-        version: 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.9)
+        version: 7.5.3(@vue/compiler-core@3.3.9)(vue@3.3.9)
       '@storybook/vue3-vite':
         specifier: 7.5.3
-        version: 7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@5.0.2)(vue@3.3.9)
+        version: 7.5.3(@vue/compiler-core@3.3.9)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@5.0.2)(vue@3.3.9)
       '@testing-library/vue':
         specifier: 8.0.1
         version: 8.0.1(@vue/compiler-sfc@3.3.9)(vue@3.3.9)
@@ -988,7 +991,7 @@ importers:
         version: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.5.3)(@storybook/components@7.5.3)(@storybook/core-events@7.5.3)(@storybook/manager-api@7.5.3)(@storybook/preview-api@7.5.3)(@storybook/theming@7.5.3)(@storybook/types@7.5.3)(react-dom@18.2.0)(react@18.2.0)
       summaly:
         specifier: github:misskey-dev/summaly
-        version: github.com/misskey-dev/summaly/d2d8db49943ccb201c1b1b283e9d0a630519fac7
+        version: github.com/misskey-dev/summaly/d2a3e07205c3c9769bc5a7b42031c8884b5a25c8
       vite-plugin-turbosnap:
         specifier: 1.0.3
         version: 1.0.3
@@ -1053,6 +1056,9 @@ importers:
       mock-socket:
         specifier: 9.3.1
         version: 9.3.1
+      ncp:
+        specifier: 2.0.0
+        version: 2.0.0
       tsd:
         specifier: 0.29.0
         version: 0.29.0
@@ -1060,6 +1066,39 @@ importers:
         specifier: 5.3.2
         version: 5.3.2
 
+  packages/misskey-js/generator:
+    devDependencies:
+      '@apidevtools/swagger-parser':
+        specifier: 10.1.0
+        version: 10.1.0(openapi-types@12.1.3)
+      '@types/node':
+        specifier: 20.9.1
+        version: 20.9.1
+      '@typescript-eslint/eslint-plugin':
+        specifier: 6.11.0
+        version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2)
+      '@typescript-eslint/parser':
+        specifier: 6.11.0
+        version: 6.11.0(eslint@8.53.0)(typescript@5.3.2)
+      eslint:
+        specifier: 8.53.0
+        version: 8.53.0
+      openapi-types:
+        specifier: 12.1.3
+        version: 12.1.3
+      openapi-typescript:
+        specifier: 6.7.1
+        version: 6.7.1
+      ts-case-convert:
+        specifier: 2.0.2
+        version: 2.0.2
+      tsx:
+        specifier: 4.4.0
+        version: 4.4.0
+      typescript:
+        specifier: 5.3.2
+        version: 5.3.2
+
   packages/sw:
     dependencies:
       esbuild:
@@ -1107,6 +1146,38 @@ packages:
       '@jridgewell/trace-mapping': 0.3.18
     dev: true
 
+  /@apidevtools/json-schema-ref-parser@9.0.6:
+    resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==}
+    dependencies:
+      '@jsdevtools/ono': 7.1.3
+      call-me-maybe: 1.0.2
+      js-yaml: 3.14.1
+    dev: true
+
+  /@apidevtools/openapi-schemas@2.1.0:
+    resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==}
+    engines: {node: '>=10'}
+    dev: true
+
+  /@apidevtools/swagger-methods@3.0.2:
+    resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==}
+    dev: true
+
+  /@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3):
+    resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==}
+    peerDependencies:
+      openapi-types: '>=7'
+    dependencies:
+      '@apidevtools/json-schema-ref-parser': 9.0.6
+      '@apidevtools/openapi-schemas': 2.1.0
+      '@apidevtools/swagger-methods': 3.0.2
+      '@jsdevtools/ono': 7.1.3
+      ajv: 8.12.0
+      ajv-draft-04: 1.0.0(ajv@8.12.0)
+      call-me-maybe: 1.0.2
+      openapi-types: 12.1.3
+    dev: true
+
   /@aw-web-design/x-default-browser@1.4.126:
     resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==}
     hasBin: true
@@ -3328,6 +3399,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/android-arm64@0.18.20:
+    resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/android-arm64@0.19.8:
     resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==}
     engines: {node: '>=12'}
@@ -3345,6 +3425,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/android-arm@0.18.20:
+    resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/android-arm@0.19.8:
     resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==}
     engines: {node: '>=12'}
@@ -3362,6 +3451,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/android-x64@0.18.20:
+    resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/android-x64@0.19.8:
     resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==}
     engines: {node: '>=12'}
@@ -3379,6 +3477,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/darwin-arm64@0.18.20:
+    resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/darwin-arm64@0.19.8:
     resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==}
     engines: {node: '>=12'}
@@ -3396,6 +3503,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/darwin-x64@0.18.20:
+    resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/darwin-x64@0.19.8:
     resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==}
     engines: {node: '>=12'}
@@ -3413,6 +3529,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/freebsd-arm64@0.18.20:
+    resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/freebsd-arm64@0.19.8:
     resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==}
     engines: {node: '>=12'}
@@ -3430,6 +3555,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/freebsd-x64@0.18.20:
+    resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/freebsd-x64@0.19.8:
     resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==}
     engines: {node: '>=12'}
@@ -3447,6 +3581,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-arm64@0.18.20:
+    resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-arm64@0.19.8:
     resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==}
     engines: {node: '>=12'}
@@ -3464,6 +3607,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-arm@0.18.20:
+    resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-arm@0.19.8:
     resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==}
     engines: {node: '>=12'}
@@ -3481,6 +3633,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-ia32@0.18.20:
+    resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-ia32@0.19.8:
     resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==}
     engines: {node: '>=12'}
@@ -3498,6 +3659,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-loong64@0.18.20:
+    resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-loong64@0.19.8:
     resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==}
     engines: {node: '>=12'}
@@ -3515,6 +3685,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-mips64el@0.18.20:
+    resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-mips64el@0.19.8:
     resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==}
     engines: {node: '>=12'}
@@ -3532,6 +3711,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-ppc64@0.18.20:
+    resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-ppc64@0.19.8:
     resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==}
     engines: {node: '>=12'}
@@ -3549,6 +3737,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-riscv64@0.18.20:
+    resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-riscv64@0.19.8:
     resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==}
     engines: {node: '>=12'}
@@ -3566,6 +3763,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-s390x@0.18.20:
+    resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-s390x@0.19.8:
     resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==}
     engines: {node: '>=12'}
@@ -3583,6 +3789,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/linux-x64@0.18.20:
+    resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/linux-x64@0.19.8:
     resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==}
     engines: {node: '>=12'}
@@ -3600,6 +3815,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/netbsd-x64@0.18.20:
+    resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/netbsd-x64@0.19.8:
     resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==}
     engines: {node: '>=12'}
@@ -3617,6 +3841,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/openbsd-x64@0.18.20:
+    resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/openbsd-x64@0.19.8:
     resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==}
     engines: {node: '>=12'}
@@ -3634,6 +3867,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/sunos-x64@0.18.20:
+    resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/sunos-x64@0.19.8:
     resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==}
     engines: {node: '>=12'}
@@ -3651,6 +3893,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/win32-arm64@0.18.20:
+    resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/win32-arm64@0.19.8:
     resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==}
     engines: {node: '>=12'}
@@ -3668,6 +3919,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/win32-ia32@0.18.20:
+    resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/win32-ia32@0.19.8:
     resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==}
     engines: {node: '>=12'}
@@ -3685,6 +3945,15 @@ packages:
     dev: true
     optional: true
 
+  /@esbuild/win32-x64@0.18.20:
+    resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   /@esbuild/win32-x64@0.19.8:
     resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==}
     engines: {node: '>=12'}
@@ -3693,6 +3962,16 @@ packages:
     requiresBuild: true
     optional: true
 
+  /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0):
+    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+    dependencies:
+      eslint: 8.53.0
+      eslint-visitor-keys: 3.4.3
+    dev: true
+
   /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0):
     resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3725,6 +4004,11 @@ packages:
       - supports-color
     dev: true
 
+  /@eslint/js@8.53.0:
+    resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    dev: true
+
   /@eslint/js@8.54.0:
     resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -3761,6 +4045,11 @@ packages:
       text-decoding: 1.0.0
     dev: false
 
+  /@fastify/busboy@2.1.0:
+    resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==}
+    engines: {node: '>=14'}
+    dev: true
+
   /@fastify/cookie@9.2.0:
     resolution: {integrity: sha512-fkg1yjjQRHPFAxSHeLC8CqYuNzvR6Lwlj/KjrzQcGjNBK+K82nW+UfCjfN71g1GkoVoc1GTOgIWkFJpcMfMkHQ==}
     dependencies:
@@ -4305,6 +4594,10 @@ packages:
       '@jridgewell/resolve-uri': 3.1.0
       '@jridgewell/sourcemap-codec': 1.4.14
 
+  /@jsdevtools/ono@7.1.3:
+    resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
+    dev: true
+
   /@juggle/resize-observer@3.4.0:
     resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
     dev: true
@@ -6924,7 +7217,7 @@ packages:
       file-system-cache: 2.3.0
     dev: true
 
-  /@storybook/vue3-vite@7.5.3(@vue/compiler-core@3.3.8)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@5.0.2)(vue@3.3.9):
+  /@storybook/vue3-vite@7.5.3(@vue/compiler-core@3.3.9)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@5.0.2)(vue@3.3.9):
     resolution: {integrity: sha512-gkNwDDn2AKthAtaoPrHb0+2gi33UluxpfSq/M5COoMEVFphj6y/jyDa+OEYlceXgnD8g2xvX4/yv2TbTNDzmcQ==}
     engines: {node: ^14.18 || >=16}
     peerDependencies:
@@ -6934,7 +7227,7 @@ packages:
     dependencies:
       '@storybook/builder-vite': 7.5.3(typescript@5.3.2)(vite@5.0.2)
       '@storybook/core-server': 7.5.3
-      '@storybook/vue3': 7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.9)
+      '@storybook/vue3': 7.5.3(@vue/compiler-core@3.3.9)(vue@3.3.9)
       '@vitejs/plugin-vue': 4.5.0(vite@5.0.2)(vue@3.3.9)
       magic-string: 0.30.5
       react: 18.2.0
@@ -6953,7 +7246,7 @@ packages:
       - vue
     dev: true
 
-  /@storybook/vue3@7.5.3(@vue/compiler-core@3.3.8)(vue@3.3.9):
+  /@storybook/vue3@7.5.3(@vue/compiler-core@3.3.9)(vue@3.3.9):
     resolution: {integrity: sha512-JaxtOl3UD9YhPrOqHuKtpqHMnFril3sBUxx/no2yM/mZYmNpAVd/C6PFM839WCay1mAywPuUoebJvmwWxWijkw==}
     engines: {node: '>=16.0.0'}
     peerDependencies:
@@ -6965,7 +7258,7 @@ packages:
       '@storybook/global': 5.0.0
       '@storybook/preview-api': 7.5.3
       '@storybook/types': 7.5.3
-      '@vue/compiler-core': 3.3.8
+      '@vue/compiler-core': 3.3.9
       lodash: 4.17.21
       ts-dedent: 2.2.0
       type-fest: 2.19.0
@@ -6982,7 +7275,7 @@ packages:
     hasBin: true
     peerDependencies:
       '@swc/core': ^1.2.66
-      chokidar: 3.5.3
+      chokidar: ^3.5.1
     peerDependenciesMeta:
       chokidar:
         optional: true
@@ -7832,6 +8125,12 @@ packages:
     dependencies:
       undici-types: 5.26.5
 
+  /@types/node@20.9.1:
+    resolution: {integrity: sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==}
+    dependencies:
+      undici-types: 5.26.5
+    dev: true
+
   /@types/nodemailer@6.4.14:
     resolution: {integrity: sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==}
     dependencies:
@@ -8091,6 +8390,35 @@ packages:
     dev: true
     optional: true
 
+  /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.3.2):
+    resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@eslint-community/regexpp': 4.6.2
+      '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.3.2)
+      '@typescript-eslint/scope-manager': 6.11.0
+      '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2)
+      '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2)
+      '@typescript-eslint/visitor-keys': 6.11.0
+      debug: 4.3.4(supports-color@8.1.1)
+      eslint: 8.53.0
+      graphemer: 1.4.0
+      ignore: 5.2.4
+      natural-compare: 1.4.0
+      semver: 7.5.4
+      ts-api-utils: 1.0.1(typescript@5.3.2)
+      typescript: 5.3.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2):
     resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8120,6 +8448,27 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.3.2):
+    resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/scope-manager': 6.11.0
+      '@typescript-eslint/types': 6.11.0
+      '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2)
+      '@typescript-eslint/visitor-keys': 6.11.0
+      debug: 4.3.4(supports-color@8.1.1)
+      eslint: 8.53.0
+      typescript: 5.3.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2):
     resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8141,6 +8490,14 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/scope-manager@6.11.0:
+    resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dependencies:
+      '@typescript-eslint/types': 6.11.0
+      '@typescript-eslint/visitor-keys': 6.11.0
+    dev: true
+
   /@typescript-eslint/scope-manager@6.12.0:
     resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8149,6 +8506,26 @@ packages:
       '@typescript-eslint/visitor-keys': 6.12.0
     dev: true
 
+  /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.3.2):
+    resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2)
+      '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.3.2)
+      debug: 4.3.4(supports-color@8.1.1)
+      eslint: 8.53.0
+      ts-api-utils: 1.0.1(typescript@5.3.2)
+      typescript: 5.3.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2):
     resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8169,11 +8546,37 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/types@6.11.0:
+    resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dev: true
+
   /@typescript-eslint/types@6.12.0:
     resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==}
     engines: {node: ^16.0.0 || >=18.0.0}
     dev: true
 
+  /@typescript-eslint/typescript-estree@6.11.0(typescript@5.3.2):
+    resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/types': 6.11.0
+      '@typescript-eslint/visitor-keys': 6.11.0
+      debug: 4.3.4(supports-color@8.1.1)
+      globby: 11.1.0
+      is-glob: 4.0.3
+      semver: 7.5.4
+      ts-api-utils: 1.0.1(typescript@5.3.2)
+      typescript: 5.3.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2):
     resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8195,6 +8598,25 @@ packages:
       - supports-color
     dev: true
 
+  /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.3.2):
+    resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+      '@types/json-schema': 7.0.12
+      '@types/semver': 7.5.6
+      '@typescript-eslint/scope-manager': 6.11.0
+      '@typescript-eslint/types': 6.11.0
+      '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.3.2)
+      eslint: 8.53.0
+      semver: 7.5.4
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+    dev: true
+
   /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2):
     resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8214,6 +8636,14 @@ packages:
       - typescript
     dev: true
 
+  /@typescript-eslint/visitor-keys@6.11.0:
+    resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dependencies:
+      '@typescript-eslint/types': 6.11.0
+      eslint-visitor-keys: 3.4.3
+    dev: true
+
   /@typescript-eslint/visitor-keys@6.12.0:
     resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==}
     engines: {node: ^16.0.0 || >=18.0.0}
@@ -8392,6 +8822,7 @@ packages:
       '@vue/shared': 3.3.8
       estree-walker: 2.0.2
       source-map-js: 1.0.2
+    dev: false
 
   /@vue/compiler-core@3.3.9:
     resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==}
@@ -8506,6 +8937,7 @@ packages:
 
   /@vue/shared@3.3.8:
     resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==}
+    dev: false
 
   /@vue/shared@3.3.9:
     resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==}
@@ -8678,6 +9110,17 @@ packages:
       clean-stack: 2.2.0
       indent-string: 4.0.0
 
+  /ajv-draft-04@1.0.0(ajv@8.12.0):
+    resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
+    peerDependencies:
+      ajv: ^8.5.0
+    peerDependenciesMeta:
+      ajv:
+        optional: true
+    dependencies:
+      ajv: 8.12.0
+    dev: true
+
   /ajv-formats@2.1.1(ajv@8.12.0):
     resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
     peerDependencies:
@@ -8704,7 +9147,6 @@ packages:
       json-schema-traverse: 1.0.0
       require-from-string: 2.0.2
       uri-js: 4.4.1
-    dev: false
 
   /ansi-colors@4.1.3:
     resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
@@ -9538,6 +9980,10 @@ packages:
       function-bind: 1.1.1
       get-intrinsic: 1.2.0
 
+  /call-me-maybe@1.0.2:
+    resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+    dev: true
+
   /callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
@@ -9773,7 +10219,7 @@ packages:
       normalize-path: 3.0.0
       readdirp: 3.6.0
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: 2.3.3
 
   /chownr@1.1.4:
     resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
@@ -11060,6 +11506,36 @@ packages:
       '@esbuild/win32-x64': 0.18.17
     dev: true
 
+  /esbuild@0.18.20:
+    resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+    engines: {node: '>=12'}
+    hasBin: true
+    requiresBuild: true
+    optionalDependencies:
+      '@esbuild/android-arm': 0.18.20
+      '@esbuild/android-arm64': 0.18.20
+      '@esbuild/android-x64': 0.18.20
+      '@esbuild/darwin-arm64': 0.18.20
+      '@esbuild/darwin-x64': 0.18.20
+      '@esbuild/freebsd-arm64': 0.18.20
+      '@esbuild/freebsd-x64': 0.18.20
+      '@esbuild/linux-arm': 0.18.20
+      '@esbuild/linux-arm64': 0.18.20
+      '@esbuild/linux-ia32': 0.18.20
+      '@esbuild/linux-loong64': 0.18.20
+      '@esbuild/linux-mips64el': 0.18.20
+      '@esbuild/linux-ppc64': 0.18.20
+      '@esbuild/linux-riscv64': 0.18.20
+      '@esbuild/linux-s390x': 0.18.20
+      '@esbuild/linux-x64': 0.18.20
+      '@esbuild/netbsd-x64': 0.18.20
+      '@esbuild/openbsd-x64': 0.18.20
+      '@esbuild/sunos-x64': 0.18.20
+      '@esbuild/win32-arm64': 0.18.20
+      '@esbuild/win32-ia32': 0.18.20
+      '@esbuild/win32-x64': 0.18.20
+    dev: true
+
   /esbuild@0.19.8:
     resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==}
     engines: {node: '>=12'}
@@ -11253,6 +11729,53 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dev: true
 
+  /eslint@8.53.0:
+    resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    hasBin: true
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
+      '@eslint-community/regexpp': 4.6.2
+      '@eslint/eslintrc': 2.1.3
+      '@eslint/js': 8.53.0
+      '@humanwhocodes/config-array': 0.11.13
+      '@humanwhocodes/module-importer': 1.0.1
+      '@nodelib/fs.walk': 1.2.8
+      '@ungap/structured-clone': 1.2.0
+      ajv: 6.12.6
+      chalk: 4.1.2
+      cross-spawn: 7.0.3
+      debug: 4.3.4(supports-color@8.1.1)
+      doctrine: 3.0.0
+      escape-string-regexp: 4.0.0
+      eslint-scope: 7.2.2
+      eslint-visitor-keys: 3.4.3
+      espree: 9.6.1
+      esquery: 1.4.2
+      esutils: 2.0.3
+      fast-deep-equal: 3.1.3
+      file-entry-cache: 6.0.1
+      find-up: 5.0.0
+      glob-parent: 6.0.2
+      globals: 13.19.0
+      graphemer: 1.4.0
+      ignore: 5.2.4
+      imurmurhash: 0.1.4
+      is-glob: 4.0.3
+      is-path-inside: 3.0.3
+      js-yaml: 4.1.0
+      json-stable-stringify-without-jsonify: 1.0.1
+      levn: 0.4.1
+      lodash.merge: 4.6.2
+      minimatch: 3.1.2
+      natural-compare: 1.4.0
+      optionator: 0.9.3
+      strip-ansi: 6.0.1
+      text-table: 0.2.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   /eslint@8.54.0:
     resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -12020,13 +12543,6 @@ packages:
   /fs.realpath@1.0.0:
     resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
 
-  /fsevents@2.3.2:
-    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
-    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
-    os: [darwin]
-    requiresBuild: true
-    optional: true
-
   /fsevents@2.3.3:
     resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -12164,6 +12680,12 @@ packages:
       get-intrinsic: 1.2.1
     dev: true
 
+  /get-tsconfig@4.7.2:
+    resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+    dependencies:
+      resolve-pkg-maps: 1.0.0
+    dev: true
+
   /getos@3.2.1:
     resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==}
     dependencies:
@@ -13557,7 +14079,7 @@ packages:
       micromatch: 4.0.5
       walker: 1.0.8
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: 2.3.3
     dev: true
 
   /jest-leak-detector@29.7.0:
@@ -14004,7 +14526,6 @@ packages:
 
   /json-schema-traverse@1.0.0:
     resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-    dev: false
 
   /json-schema@0.4.0:
     resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
@@ -14950,6 +15471,11 @@ packages:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
     dev: true
 
+  /ncp@2.0.0:
+    resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==}
+    hasBin: true
+    dev: true
+
   /ndarray-ops@1.2.2:
     resolution: {integrity: sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==}
     dependencies:
@@ -15422,7 +15948,18 @@ packages:
 
   /openapi-types@12.1.3:
     resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
-    dev: false
+
+  /openapi-typescript@6.7.1:
+    resolution: {integrity: sha512-Q3Ltt0KUm2smcPrsaR8qKmSwQ1KM4yGDJVoQdpYa0yvKPeN8huDx5utMT7DvwvJastHHzUxajjivK3WN2+fobg==}
+    hasBin: true
+    dependencies:
+      ansi-colors: 4.1.3
+      fast-glob: 3.3.2
+      js-yaml: 4.1.0
+      supports-color: 9.4.0
+      undici: 5.28.1
+      yargs-parser: 21.1.1
+    dev: true
 
   /opentype.js@0.4.11:
     resolution: {integrity: sha512-GthxucX/6aftfLdeU5Ho7o7zmQcC8uVtqdcelVq12X++ndxwBZG8Xb5rFEKT7nEcWDD2P1x+TNuJ70jtj1Mbpw==}
@@ -17217,7 +17754,6 @@ packages:
   /require-from-string@2.0.2:
     resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
     engines: {node: '>=0.10.0'}
-    dev: false
 
   /require-main-filename@2.0.0:
     resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
@@ -17246,6 +17782,10 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  /resolve-pkg-maps@1.0.0:
+    resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+    dev: true
+
   /resolve.exports@2.0.0:
     resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==}
     engines: {node: '>=10'}
@@ -17345,7 +17885,7 @@ packages:
     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
     hasBin: true
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: 2.3.3
     dev: true
 
   /rollup@4.6.0:
@@ -17365,7 +17905,7 @@ packages:
       '@rollup/rollup-win32-arm64-msvc': 4.6.0
       '@rollup/rollup-win32-ia32-msvc': 4.6.0
       '@rollup/rollup-win32-x64-msvc': 4.6.0
-      fsevents: 2.3.2
+      fsevents: 2.3.3
 
   /rrweb-cssom@0.6.0:
     resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
@@ -18293,6 +18833,11 @@ packages:
     dependencies:
       has-flag: 4.0.0
 
+  /supports-color@9.4.0:
+    resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==}
+    engines: {node: '>=12'}
+    dev: true
+
   /supports-hyperlinks@2.3.0:
     resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
     engines: {node: '>=8'}
@@ -18638,6 +19183,10 @@ packages:
       typescript: 5.3.2
     dev: true
 
+  /ts-case-convert@2.0.2:
+    resolution: {integrity: sha512-vdKfx1VAdpvEBOBv5OpVu5ZFqRg9HdTI4sYt6qqMeICBeNyXvitrarCnFWNDAki51IKwCyx+ZssY46Q9jH5otA==}
+    dev: true
+
   /ts-dedent@2.2.0:
     resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==}
     engines: {node: '>=6.10'}
@@ -18707,6 +19256,17 @@ packages:
   /tslib@2.6.2:
     resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
 
+  /tsx@4.4.0:
+    resolution: {integrity: sha512-4fwcEjRUxW20ciSaMB8zkpGwCPxuRGnadDuj/pBk5S9uT29zvWz15PK36GrKJo45mSJomDxVejZ73c6lr3811Q==}
+    engines: {node: '>=18.0.0'}
+    hasBin: true
+    dependencies:
+      esbuild: 0.18.20
+      get-tsconfig: 4.7.2
+    optionalDependencies:
+      fsevents: 2.3.3
+    dev: true
+
   /tunnel-agent@0.6.0:
     resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
     dependencies:
@@ -18957,6 +19517,13 @@ packages:
       busboy: 1.6.0
     dev: false
 
+  /undici@5.28.1:
+    resolution: {integrity: sha512-xcIIvj1LOQH9zAL54iWFkuDEaIVEjLrru7qRpa3GrEEHk6OBhb/LycuUY2m7VCcTuDeLziXCxobQVyKExyGeIA==}
+    engines: {node: '>=14.0'}
+    dependencies:
+      '@fastify/busboy': 2.1.0
+    dev: true
+
   /unicode-canonical-property-names-ecmascript@2.0.0:
     resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
     engines: {node: '>=4'}
@@ -19999,8 +20566,8 @@ packages:
       react-dom: 18.2.0(react@18.2.0)
     dev: true
 
-  github.com/misskey-dev/summaly/d2d8db49943ccb201c1b1b283e9d0a630519fac7:
-    resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/d2d8db49943ccb201c1b1b283e9d0a630519fac7}
+  github.com/misskey-dev/summaly/d2a3e07205c3c9769bc5a7b42031c8884b5a25c8:
+    resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/d2a3e07205c3c9769bc5a7b42031c8884b5a25c8}
     name: summaly
     version: 4.0.2
     dependencies:
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index ead1764a56..3b2ecec7fd 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -3,3 +3,4 @@ packages:
  - 'packages/frontend'
  - 'packages/sw'
  - 'packages/misskey-js'
+ - 'packages/misskey-js/generator'
-- 
GitLab