e621 3.1.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -0
- package/dist/browser/e621.d.ts +2 -0
- package/dist/browser/e621.js +19346 -0
- package/dist/browser/e621.js.map +7 -0
- package/dist/lib/Debug.browser.d.ts +6 -0
- package/dist/lib/Debug.browser.js +8 -0
- package/dist/lib/client.d.ts +68 -0
- package/dist/lib/client.js +72 -0
- package/dist/lib/generated/schemas.d.ts +7 -2
- package/dist/lib/generated/schemas.js +17 -10
- package/dist/lib/generated/types.d.ts +53 -57
- package/dist/lib/index.d.ts +6 -46
- package/dist/lib/index.js +6 -62
- package/dist/lib/models/Appeal.d.ts +6 -9
- package/dist/lib/models/Appeal.js +7 -10
- package/dist/lib/models/Artist.d.ts +6 -9
- package/dist/lib/models/Artist.js +7 -10
- package/dist/lib/models/AvoidPosting.d.ts +8 -12
- package/dist/lib/models/AvoidPosting.js +9 -13
- package/dist/lib/models/Base.browser.d.ts +15 -0
- package/dist/lib/models/Base.browser.js +22 -0
- package/dist/lib/models/Base.d.ts +4 -3
- package/dist/lib/models/Base.js +1 -1
- package/dist/lib/models/BasicPost.d.ts +2 -1
- package/dist/lib/models/BasicPost.js +1 -1
- package/dist/lib/models/Blip.d.ts +10 -15
- package/dist/lib/models/Blip.js +11 -16
- package/dist/lib/models/BulkUpdateRequest.d.ts +6 -9
- package/dist/lib/models/BulkUpdateRequest.js +7 -10
- package/dist/lib/models/Comment.d.ts +14 -21
- package/dist/lib/models/Comment.js +15 -22
- package/dist/lib/models/CommentVote.d.ts +6 -9
- package/dist/lib/models/CommentVote.js +7 -10
- package/dist/lib/models/CurrentUser.d.ts +6 -9
- package/dist/lib/models/CurrentUser.js +7 -10
- package/dist/lib/models/DMail.d.ts +8 -12
- package/dist/lib/models/DMail.js +9 -13
- package/dist/lib/models/EmailBlacklist.d.ts +2 -3
- package/dist/lib/models/EmailBlacklist.js +3 -4
- package/dist/lib/models/ExtendedPost.d.ts +2 -1
- package/dist/lib/models/ExtendedPost.js +1 -1
- package/dist/lib/models/ForumPost.d.ts +16 -24
- package/dist/lib/models/ForumPost.js +17 -25
- package/dist/lib/models/ForumPostVote.d.ts +2 -3
- package/dist/lib/models/ForumPostVote.js +3 -4
- package/dist/lib/models/ForumTopic.d.ts +12 -18
- package/dist/lib/models/ForumTopic.js +13 -19
- package/dist/lib/models/HelpPage.d.ts +4 -6
- package/dist/lib/models/HelpPage.js +5 -7
- package/dist/lib/models/IpBan.d.ts +2 -3
- package/dist/lib/models/IpBan.js +3 -4
- package/dist/lib/models/Mascot.d.ts +4 -6
- package/dist/lib/models/Mascot.js +5 -7
- package/dist/lib/models/NewsUpdate.d.ts +4 -6
- package/dist/lib/models/NewsUpdate.js +5 -7
- package/dist/lib/models/Note.d.ts +6 -9
- package/dist/lib/models/Note.js +7 -10
- package/dist/lib/models/NoteVersion.d.ts +2 -3
- package/dist/lib/models/NoteVersion.js +3 -4
- package/dist/lib/models/Pool.d.ts +10 -15
- package/dist/lib/models/Pool.js +11 -16
- package/dist/lib/models/PoolVersion.d.ts +2 -3
- package/dist/lib/models/PoolVersion.js +3 -4
- package/dist/lib/models/Post.d.ts +2 -1
- package/dist/lib/models/Post.js +1 -1
- package/dist/lib/models/PostApproval.d.ts +2 -3
- package/dist/lib/models/PostApproval.js +3 -4
- package/dist/lib/models/PostFlag.d.ts +4 -6
- package/dist/lib/models/PostFlag.js +5 -7
- package/dist/lib/models/PostReplacement.d.ts +10 -15
- package/dist/lib/models/PostReplacement.js +11 -16
- package/dist/lib/models/PostSet.d.ts +10 -15
- package/dist/lib/models/PostSet.js +11 -16
- package/dist/lib/models/PostVersion.d.ts +8 -12
- package/dist/lib/models/PostVersion.js +9 -13
- package/dist/lib/models/PostVote.d.ts +6 -9
- package/dist/lib/models/PostVote.js +7 -10
- package/dist/lib/models/SearchTrendBlacklist.d.ts +4 -6
- package/dist/lib/models/SearchTrendBlacklist.js +5 -7
- package/dist/lib/models/StaffFile.d.ts +5 -7
- package/dist/lib/models/StaffFile.js +7 -9
- package/dist/lib/models/StaffNote.d.ts +6 -9
- package/dist/lib/models/StaffNote.js +7 -10
- package/dist/lib/models/StaffWiki.d.ts +9 -13
- package/dist/lib/models/StaffWiki.js +13 -17
- package/dist/lib/models/Tag.d.ts +8 -12
- package/dist/lib/models/Tag.js +9 -13
- package/dist/lib/models/TagAlias.d.ts +6 -9
- package/dist/lib/models/TagAlias.js +7 -10
- package/dist/lib/models/TagImplication.d.ts +6 -9
- package/dist/lib/models/TagImplication.js +7 -10
- package/dist/lib/models/Takedown.d.ts +12 -18
- package/dist/lib/models/Takedown.js +13 -19
- package/dist/lib/models/ThumbnailPost.d.ts +2 -1
- package/dist/lib/models/ThumbnailPost.js +1 -1
- package/dist/lib/models/Ticket.d.ts +6 -9
- package/dist/lib/models/Ticket.js +7 -10
- package/dist/lib/models/UploadWhitelist.d.ts +4 -6
- package/dist/lib/models/UploadWhitelist.js +5 -7
- package/dist/lib/models/User.d.ts +17 -25
- package/dist/lib/models/User.js +19 -27
- package/dist/lib/models/UserFeedback.d.ts +8 -12
- package/dist/lib/models/UserFeedback.js +9 -13
- package/dist/lib/models/UserNameChangeRequest.d.ts +2 -3
- package/dist/lib/models/UserNameChangeRequest.js +3 -4
- package/dist/lib/models/WikiPage.d.ts +6 -9
- package/dist/lib/models/WikiPage.js +7 -10
- package/dist/lib/models/WikiPageVersion.d.ts +2 -3
- package/dist/lib/models/WikiPageVersion.js +3 -4
- package/dist/lib/models/posts/Actions.d.ts +63 -89
- package/dist/lib/models/posts/Actions.js +53 -79
- package/dist/lib/modules/Appeals.d.ts +11 -15
- package/dist/lib/modules/Appeals.js +12 -16
- package/dist/lib/modules/ArtistUrls.d.ts +3 -3
- package/dist/lib/modules/ArtistUrls.js +4 -4
- package/dist/lib/modules/ArtistVersions.d.ts +3 -3
- package/dist/lib/modules/ArtistVersions.js +4 -4
- package/dist/lib/modules/Artists.d.ts +13 -18
- package/dist/lib/modules/Artists.js +14 -19
- package/dist/lib/modules/AvoidPostingVersions.d.ts +3 -3
- package/dist/lib/modules/AvoidPostingVersions.js +4 -4
- package/dist/lib/modules/AvoidPostings.d.ts +15 -21
- package/dist/lib/modules/AvoidPostings.js +16 -22
- package/dist/lib/modules/Bans.d.ts +5 -6
- package/dist/lib/modules/Bans.js +6 -7
- package/dist/lib/modules/Base.d.ts +16 -4
- package/dist/lib/modules/Base.js +18 -4
- package/dist/lib/modules/Blips.d.ts +17 -24
- package/dist/lib/modules/Blips.js +18 -25
- package/dist/lib/modules/BulkUpdateRequests.d.ts +13 -18
- package/dist/lib/modules/BulkUpdateRequests.js +14 -19
- package/dist/lib/modules/CommentVotes.d.ts +11 -15
- package/dist/lib/modules/CommentVotes.js +12 -16
- package/dist/lib/modules/Comments.d.ts +17 -24
- package/dist/lib/modules/Comments.js +18 -25
- package/dist/lib/modules/DMails.d.ts +13 -18
- package/dist/lib/modules/DMails.js +14 -19
- package/dist/lib/modules/DText.d.ts +3 -3
- package/dist/lib/modules/DText.js +4 -4
- package/dist/lib/modules/DbExports.d.ts +3 -3
- package/dist/lib/modules/DbExports.js +4 -4
- package/dist/lib/modules/EditHistories.d.ts +5 -6
- package/dist/lib/modules/EditHistories.js +6 -7
- package/dist/lib/modules/EmailBlacklists.d.ts +7 -9
- package/dist/lib/modules/EmailBlacklists.js +8 -10
- package/dist/lib/modules/Favorites.d.ts +15 -12
- package/dist/lib/modules/Favorites.js +19 -13
- package/dist/lib/modules/ForumPostVotes.d.ts +7 -9
- package/dist/lib/modules/ForumPostVotes.js +8 -10
- package/dist/lib/modules/ForumPosts.d.ts +17 -24
- package/dist/lib/modules/ForumPosts.js +18 -25
- package/dist/lib/modules/ForumTopics.d.ts +21 -30
- package/dist/lib/modules/ForumTopics.js +22 -31
- package/dist/lib/modules/Health.d.ts +3 -3
- package/dist/lib/modules/Health.js +4 -4
- package/dist/lib/modules/HelpPages.d.ts +13 -18
- package/dist/lib/modules/HelpPages.js +14 -19
- package/dist/lib/modules/IpBans.d.ts +7 -9
- package/dist/lib/modules/IpBans.js +8 -10
- package/dist/lib/modules/IqdbQueries.d.ts +16 -12
- package/dist/lib/modules/IqdbQueries.js +17 -10
- package/dist/lib/modules/Mascots.d.ts +9 -12
- package/dist/lib/modules/Mascots.js +10 -13
- package/dist/lib/modules/ModActions.d.ts +5 -6
- package/dist/lib/modules/ModActions.js +6 -7
- package/dist/lib/modules/NewsUpdates.d.ts +9 -12
- package/dist/lib/modules/NewsUpdates.js +10 -13
- package/dist/lib/modules/NoteVersions.d.ts +3 -3
- package/dist/lib/modules/NoteVersions.js +4 -4
- package/dist/lib/modules/Notes.d.ts +13 -18
- package/dist/lib/modules/Notes.js +14 -19
- package/dist/lib/modules/PoolVersions.d.ts +3 -3
- package/dist/lib/modules/PoolVersions.js +4 -4
- package/dist/lib/modules/Pools.d.ts +19 -27
- package/dist/lib/modules/Pools.js +20 -28
- package/dist/lib/modules/Popular.d.ts +11 -6
- package/dist/lib/modules/Popular.js +15 -7
- package/dist/lib/modules/PostApprovals.d.ts +7 -9
- package/dist/lib/modules/PostApprovals.js +8 -10
- package/dist/lib/modules/PostDisapprovals.d.ts +5 -6
- package/dist/lib/modules/PostDisapprovals.js +6 -7
- package/dist/lib/modules/PostEvents.d.ts +3 -3
- package/dist/lib/modules/PostEvents.js +4 -4
- package/dist/lib/modules/PostFlags.d.ts +11 -15
- package/dist/lib/modules/PostFlags.js +12 -16
- package/dist/lib/modules/PostReplacements.d.ts +15 -21
- package/dist/lib/modules/PostReplacements.js +16 -22
- package/dist/lib/modules/PostSets.d.ts +19 -27
- package/dist/lib/modules/PostSets.js +20 -28
- package/dist/lib/modules/PostVersions.d.ts +9 -12
- package/dist/lib/modules/PostVersions.js +10 -13
- package/dist/lib/modules/PostVotes.d.ts +11 -15
- package/dist/lib/modules/PostVotes.js +12 -16
- package/dist/lib/modules/Posts.d.ts +70 -81
- package/dist/lib/modules/Posts.js +89 -85
- package/dist/lib/modules/RelatedTags.d.ts +3 -3
- package/dist/lib/modules/RelatedTags.js +4 -4
- package/dist/lib/modules/SearchTrendBlacklists.d.ts +7 -9
- package/dist/lib/modules/SearchTrendBlacklists.js +8 -10
- package/dist/lib/modules/SearchTrends.d.ts +11 -15
- package/dist/lib/modules/SearchTrends.js +12 -16
- package/dist/lib/modules/{staff/AutomodDMails.d.ts → StaffAutomodDMails.d.ts} +15 -18
- package/dist/lib/modules/{staff/AutomodDMails.js → StaffAutomodDMails.js} +14 -17
- package/dist/lib/modules/{staff/DMails.d.ts → StaffDMails.d.ts} +7 -8
- package/dist/lib/modules/StaffDMails.js +54 -0
- package/dist/lib/modules/StaffExceptionLogs.d.ts +33 -0
- package/dist/lib/modules/StaffExceptionLogs.js +54 -0
- package/dist/lib/modules/{staff/Files.d.ts → StaffFiles.d.ts} +15 -19
- package/dist/lib/modules/{staff/Files.js → StaffFiles.js} +16 -20
- package/dist/lib/modules/StaffNotes.d.ts +13 -18
- package/dist/lib/modules/StaffNotes.js +14 -19
- package/dist/lib/modules/{staff/UserCleanups.d.ts → StaffUserCleanups.d.ts} +12 -16
- package/dist/lib/modules/{staff/UserCleanups.js → StaffUserCleanups.js} +15 -19
- package/dist/lib/modules/{staff/Users.d.ts → StaffUsers.d.ts} +10 -12
- package/dist/lib/modules/{staff/Users.js → StaffUsers.js} +11 -13
- package/dist/lib/modules/StaffVoteTrends.d.ts +26 -0
- package/dist/lib/modules/StaffVoteTrends.js +39 -0
- package/dist/lib/modules/{staff/WikiVersions.d.ts → StaffWikiVersions.d.ts} +9 -10
- package/dist/lib/modules/StaffWikiVersions.js +54 -0
- package/dist/lib/modules/{staff/Wikis.d.ts → StaffWikis.d.ts} +19 -25
- package/dist/lib/modules/{staff/Wikis.js → StaffWikis.js} +20 -26
- package/dist/lib/modules/TagAliases.d.ts +13 -18
- package/dist/lib/modules/TagAliases.js +14 -19
- package/dist/lib/modules/TagCorrections.d.ts +5 -6
- package/dist/lib/modules/TagCorrections.js +6 -7
- package/dist/lib/modules/TagImplications.d.ts +13 -18
- package/dist/lib/modules/TagImplications.js +14 -19
- package/dist/lib/modules/TagTypeVersions.d.ts +3 -3
- package/dist/lib/modules/TagTypeVersions.js +4 -4
- package/dist/lib/modules/Tags.d.ts +11 -15
- package/dist/lib/modules/Tags.js +12 -16
- package/dist/lib/modules/Takedowns.d.ts +19 -27
- package/dist/lib/modules/Takedowns.js +20 -28
- package/dist/lib/modules/Tickets.d.ts +11 -15
- package/dist/lib/modules/Tickets.js +12 -16
- package/dist/lib/modules/UploadWhitelists.d.ts +11 -15
- package/dist/lib/modules/UploadWhitelists.js +12 -16
- package/dist/lib/modules/Uploads.d.ts +10 -12
- package/dist/lib/modules/Uploads.js +8 -10
- package/dist/lib/modules/UserFeedbacks.d.ts +15 -21
- package/dist/lib/modules/UserFeedbacks.js +16 -22
- package/dist/lib/modules/UserNameChangeRequests.d.ts +9 -12
- package/dist/lib/modules/UserNameChangeRequests.js +10 -13
- package/dist/lib/modules/Users.d.ts +27 -39
- package/dist/lib/modules/Users.js +28 -40
- package/dist/lib/modules/WikiPageVersions.d.ts +5 -6
- package/dist/lib/modules/WikiPageVersions.js +6 -7
- package/dist/lib/modules/WikiPages.d.ts +13 -18
- package/dist/lib/modules/WikiPages.js +14 -19
- package/dist/lib/modules/index.d.ts +35 -36
- package/dist/lib/modules/index.js +81 -80
- package/dist/lib/modules/posts/Format.d.ts +15 -5
- package/dist/lib/modules/posts/Format.js +1 -1
- package/dist/lib/standalone.d.ts +26 -0
- package/dist/lib/standalone.js +26 -0
- package/dist/lib/util.js +4 -10
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +3 -0
- package/package.json +38 -8
- package/tsconfig.json +1 -1
- package/dist/lib/generated/source.json +0 -22669
- package/dist/lib/modules/staff/DMails.js +0 -55
- package/dist/lib/modules/staff/ExceptionLogs.d.ts +0 -34
- package/dist/lib/modules/staff/ExceptionLogs.js +0 -55
- package/dist/lib/modules/staff/VoteTrends.d.ts +0 -26
- package/dist/lib/modules/staff/VoteTrends.js +0 -39
- package/dist/lib/modules/staff/WikiVersions.js +0 -55
- package/dist/package.json +0 -73
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../lib/Debug.browser.ts", "../../lib/generated/core/serverSentEvents.ts", "../../lib/generated/core/pathSerializer.ts", "../../lib/generated/core/utils.ts", "../../lib/generated/core/auth.ts", "../../lib/generated/core/bodySerializer.ts", "../../lib/generated/client/utils.ts", "../../lib/generated/client/client.ts", "../../lib/version.ts", "../../lib/client.ts", "../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs", "../../lib/generated/sdk.ts", "../../lib/generated/client/index.ts", "../../lib/generated/core/params.ts", "../../lib/generated/core/queryKeySerializer.ts", "../../lib/generated/client.ts", "../../lib/util.ts", "../../lib/models/Base.browser.ts", "../../lib/models/Appeal.ts", "../../lib/errors.ts", "../../lib/modules/Base.ts", "../../lib/modules/Appeals.ts", "../../lib/models/Artist.ts", "../../lib/modules/Artists.ts", "../../lib/models/ArtistUrl.ts", "../../lib/modules/ArtistUrls.ts", "../../lib/models/ArtistVersion.ts", "../../lib/modules/ArtistVersions.ts", "../../lib/models/AvoidPosting.ts", "../../lib/modules/AvoidPostings.ts", "../../lib/models/AvoidPostingVersion.ts", "../../lib/modules/AvoidPostingVersions.ts", "../../lib/models/Ban.ts", "../../lib/modules/Bans.ts", "../../lib/models/Blip.ts", "../../lib/modules/Blips.ts", "../../lib/models/BulkUpdateRequest.ts", "../../lib/modules/BulkUpdateRequests.ts", "../../lib/models/Comment.ts", "../../lib/modules/Comments.ts", "../../lib/models/DbExport.ts", "../../lib/modules/DbExports.ts", "../../lib/models/DMail.ts", "../../lib/modules/DMails.ts", "../../lib/models/EditHistory.ts", "../../lib/modules/EditHistories.ts", "../../lib/models/EmailBlacklist.ts", "../../lib/modules/EmailBlacklists.ts", "../../lib/models/posts/Actions.ts", "../../lib/models/BasicPost.ts", "../../lib/models/ExtendedPost.ts", "../../lib/models/Post.ts", "../../lib/models/ThumbnailPost.ts", "../../lib/modules/posts/Format.ts", "../../lib/modules/Favorites.ts", "../../lib/models/ForumPost.ts", "../../lib/modules/ForumPosts.ts", "../../lib/models/ForumTopic.ts", "../../lib/modules/ForumTopics.ts", "../../lib/modules/Health.ts", "../../lib/models/HelpPage.ts", "../../lib/modules/HelpPages.ts", "../../lib/models/IpBan.ts", "../../lib/modules/IpBans.ts", "../../lib/models/IqdbPost.ts", "../../lib/modules/IqdbQueries.ts", "../../lib/models/Mascot.ts", "../../lib/modules/Mascots.ts", "../../lib/models/ModAction.ts", "../../lib/modules/ModActions.ts", "../../lib/models/NewsUpdate.ts", "../../lib/modules/NewsUpdates.ts", "../../lib/models/Note.ts", "../../lib/modules/Notes.ts", "../../lib/models/NoteVersion.ts", "../../lib/modules/NoteVersions.ts", "../../lib/models/Pool.ts", "../../lib/modules/Pools.ts", "../../lib/models/PoolVersion.ts", "../../lib/modules/PoolVersions.ts", "../../lib/models/MinimalUser.ts", "../../lib/modules/Posts.ts", "../../lib/models/PostSet.ts", "../../lib/modules/PostSets.ts", "../../lib/modules/PostVersions.ts", "../../lib/models/SearchTrendBlacklist.ts", "../../lib/modules/SearchTrendBlacklists.ts", "../../lib/models/RisingSearchTrend.ts", "../../lib/models/SearchTrend.ts", "../../lib/modules/SearchTrends.ts", "../../lib/models/StaffNote.ts", "../../lib/modules/StaffNotes.ts", "../../lib/models/Tag.ts", "../../lib/models/TagPreview.ts", "../../lib/modules/Tags.ts", "../../lib/models/Takedown.ts", "../../lib/modules/Takedowns.ts", "../../lib/models/Ticket.ts", "../../lib/modules/Tickets.ts", "../../lib/models/Upload.ts", "../../lib/modules/Uploads.ts", "../../lib/models/UploadWhitelist.ts", "../../lib/modules/UploadWhitelists.ts", "../../lib/models/User.ts", "../../lib/models/CurrentUser.ts", "../../lib/models/FullCurrentUser.ts", "../../lib/models/FullUser.ts", "../../lib/modules/Users.ts", "../../lib/models/UserFeedback.ts", "../../lib/modules/UserFeedbacks.ts", "../../lib/models/UserNameChangeRequest.ts", "../../lib/modules/UserNameChangeRequests.ts", "../../lib/models/WikiPage.ts", "../../lib/modules/WikiPages.ts", "../../lib/models/WikiPageVersion.ts", "../../lib/modules/WikiPageVersions.ts", "../../lib/models/CommentVote.ts", "../../lib/modules/CommentVotes.ts", "../../lib/modules/DText.ts", "../../lib/modules/Popular.ts", "../../lib/models/PostApproval.ts", "../../lib/modules/PostApprovals.ts", "../../lib/models/PostDisapproval.ts", "../../lib/modules/PostDisapprovals.ts", "../../lib/models/PostEvent.ts", "../../lib/modules/PostEvents.ts", "../../lib/models/PostFlag.ts", "../../lib/modules/PostFlags.ts", "../../lib/models/PostReplacement.ts", "../../lib/modules/PostReplacements.ts", "../../lib/modules/RelatedTags.ts", "../../lib/models/TagAlias.ts", "../../lib/modules/TagAliases.ts", "../../lib/models/TagCorrection.ts", "../../lib/modules/TagCorrections.ts", "../../lib/models/TagImplication.ts", "../../lib/modules/TagImplications.ts", "../../lib/models/TagTypeVersion.ts", "../../lib/modules/TagTypeVersions.ts", "../../lib/models/PostVote.ts", "../../lib/modules/PostVotes.ts", "../../lib/models/ForumPostVote.ts", "../../lib/modules/ForumPostVotes.ts", "../../lib/modules/StaffAutomodDMails.ts", "../../lib/modules/StaffDMails.ts", "../../lib/models/ExceptionLog.ts", "../../lib/modules/StaffExceptionLogs.ts", "../../lib/models/StaffFile.ts", "../../lib/modules/StaffFiles.ts", "../../lib/modules/StaffUserCleanups.ts", "../../lib/modules/StaffUsers.ts", "../../lib/modules/StaffVoteTrends.ts", "../../lib/models/StaffWiki.ts", "../../lib/modules/StaffWikis.ts", "../../lib/models/StaffWikiVersion.ts", "../../lib/modules/StaffWikiVersions.ts", "../../lib/modules/index.ts", "../../lib/models/ApiKey.ts", "../../lib/models/PostVersion.ts", "../../lib/generated.ts", "../../lib/generated/types.ts", "../../lib/generated/schemas.ts", "../../lib/index.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Browser build of {@link Debug}. `debug`/`persistent-debug` are Node-only optional dependencies whose\n * dynamic imports break browser bundlers (see #15), so this no-op variant is swapped in via\n * package.json's `browser` field.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function\nexport default function Debug(_namespace: string, _formatter: unknown, ..._args: Array<unknown>): void {}\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.js';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n", "// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.js';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.js';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.js';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.js';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.js';\nimport { jsonBodySerializer } from '../core/bodySerializer.js';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.js';\nimport { getUrl } from '../core/utils.js';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.js';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport async function setAuthParams(\n options: Pick<RequestOptions, 'auth' | 'query' | 'security'> & {\n headers: Headers;\n },\n): Promise<void> {\n for (const auth of options.security ?? []) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n}\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.js';\nimport type { HttpMethod } from '../core/types.js';\nimport { getValidRequestBody } from '../core/utils.js';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.js';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.js';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams(opts);\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as RequestInit['body'] | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as RequestInit['body'] | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n", "/** @category Constants */\nexport const VERSION = \"3.2.1\";\n", "import Debug from \"./Debug.js\";\nimport { createClient } from \"./generated/client/client.js\";\nimport { createConfig } from \"./generated/client/utils.js\";\nimport { VERSION } from \"./version.js\";\n\nimport type { Client, Config } from \"./generated/client/types.js\";\nimport type { NoV2Options, PostFormatOptions } from \"./modules/posts/Format.js\";\n\n/** @category Main */\nexport interface Options<PF extends PostFormatOptions = NoV2Options> {\n /**\n * The api key you want to authenticate with (Account -> Manage API Access)\n * @default none\n */\n authKey?: string;\n /**\n * The uername of the user you want to authenticate with\n * @default none\n */\n authUser?: string;\n /**\n * The base URL for the API.\n * @default https://e621.net\n */\n baseURL?: string;\n /**\n * The v2/mode format every post-returning method across the lib falls back to when called without\n * explicit `v2`/`mode` options (e.g. `posts.get()`, `posts.search()`, `favorites.search()`,\n * `popular.get()`, `iqdbQueries.get()`/`.post()`, and convenience methods on returned post models like\n * `post.update()`). Per-call options still take priority over this.\n * @default legacy (v2: false)\n */\n defaultPostFormat?: PF;\n /**\n * The number of seconds before a request times out\n * @default 30\n */\n requestTimeout?: number;\n /**\n * The url to use for status checks.\n * @default https://status.e621.church/json\n */\n statusCheckURL?: string;\n /**\n * The user agent to use for requests\n * @defaultWithoutAuthentication E621/\\{version\\} (+https://github.com/DonovanDMC/E621)\n * @defaultWithAuthentication E621/\\{version\\} (+https://github.com/DonovanDMC/E621; \\{authUser\\})\n */\n userAgent?: string;\n}\n\n/** @category Main */\nexport interface InstanceOptions {\n authKey: string | null;\n authUser: string | null;\n baseURL: string;\n requestTimeout: number;\n statusCheckURL: string;\n userAgent: string;\n}\n\n/** @category Main */\nexport interface E621ClientResult {\n client: Client;\n options: InstanceOptions;\n}\n\n/**\n * Builds the generated API {@link Client} and resolved {@link InstanceOptions} used by the main {@link E621}\n * class, handling auth header injection, the default user agent, and request/response {@link Debug} logging.\n *\n * Exposed standalone (see `e621/standalone`) so modules can be constructed directly, without the full\n * {@link E621} client, when bundle size matters more than convenience.\n *\n * @category Main\n */\nexport function createE621Client<const PF extends PostFormatOptions = NoV2Options>(options?: Options<PF>): E621ClientResult {\n const resolved: InstanceOptions = {\n authKey: options?.authKey ?? null,\n authUser: options?.authUser ?? null,\n baseURL: options?.baseURL ?? \"https://e621.net\",\n requestTimeout: options?.requestTimeout ?? 30,\n statusCheckURL: options?.statusCheckURL ?? \"https://status.e621.church/json\",\n userAgent: options?.userAgent ?? `E621/${VERSION} (https://github.com/DonovanDMC/E621${options?.authUser ? `; \"${options.authUser}\"` : \"\"})`,\n };\n let config: Config;\n const commonConfig: Partial<Parameters<typeof createConfig>[0]> = {\n baseUrl: resolved.baseURL,\n headers: {\n \"User-Agent\": resolved.userAgent,\n },\n fetch: async (input, init): Promise<Response> => {\n let url = \"unknown\", method = \"unknown\";\n // for some reason it doesn't seem to be inserting the Authorization header\n if (input instanceof Request) {\n url = input.url;\n method = input.method.toLowerCase();\n if (!input.headers.has(\"Auithorization\") && resolved.authKey && resolved.authUser) {\n input.headers.set(\"Authorization\", `Basic ${btoa(`${resolved.authUser}:${resolved.authKey}`)}`);\n }\n } else if (init) {\n url = input.toString();\n method = init.method?.toLowerCase() ?? \"get\";\n if (resolved.authKey && resolved.authUser) {\n const headers = new Headers(init.headers);\n if (!headers.has(\"Authorization\")) {\n headers.set(\"Authorization\", `Basic ${btoa(`${resolved.authUser}:${resolved.authKey}`)}`);\n }\n init.headers = headers;\n }\n }\n Debug(`request:${method}`, `-> ${url}`);\n const res = await fetch(input, init);\n Debug(`response:${method}`, `<- ${url} ${res.status} ${res.statusText}`);\n return res;\n },\n };\n if (resolved.authKey && resolved.authUser) {\n config = createConfig({\n ...commonConfig,\n auth: (auth) => {\n if (auth.scheme === \"basic\") {\n return `${resolved.authUser}:${resolved.authKey}`;\n }\n\n return;\n },\n });\n } else {\n config = createConfig(commonConfig);\n }\n\n return { client: createClient(config), options: resolved };\n}\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { client } from './client.js';\nimport { type Client, formDataBodySerializer, type Options as Options2, type TDataShape, urlSearchParamsBodySerializer } from './client/index.js';\nimport type { ApiKeysCreateData, ApiKeysCreateErrors, ApiKeysCreateResponses, ApiKeysDestroyData, ApiKeysDestroyErrors, ApiKeysDestroyResponses, ApiKeysIndexData, ApiKeysIndexErrors, ApiKeysIndexResponses, ApiKeysRegenerateData, ApiKeysRegenerateErrors, ApiKeysRegenerateResponses, AppealsClaimData, AppealsClaimErrors, AppealsClaimResponses, AppealsIndexData, AppealsIndexErrors, AppealsIndexResponses, AppealsShowData, AppealsShowErrors, AppealsShowResponses, AppealsUnclaimData, AppealsUnclaimErrors, AppealsUnclaimResponses, AppealsUpdateData, AppealsUpdateErrors, AppealsUpdateResponses, ArtistsCreateData, ArtistsCreateErrors, ArtistsCreateResponses, ArtistsDestroyData, ArtistsDestroyErrors, ArtistsDestroyResponses, ArtistsIndexData, ArtistsIndexResponses, ArtistsRevertData, ArtistsRevertErrors, ArtistsRevertResponses, ArtistsShowData, ArtistsShowErrors, ArtistsShowResponses, ArtistsUpdateData, ArtistsUpdateErrors, ArtistsUpdateResponses, ArtistUrlsIndexData, ArtistUrlsIndexResponses, ArtistVersionsIndexData, ArtistVersionsIndexResponses, AvoidPostingsCreateData, AvoidPostingsCreateErrors, AvoidPostingsCreateResponses, AvoidPostingsDeleteData, AvoidPostingsDeleteErrors, AvoidPostingsDeleteResponses, AvoidPostingsDestroyData, AvoidPostingsDestroyErrors, AvoidPostingsDestroyResponses, AvoidPostingsIndexData, AvoidPostingsIndexResponses, AvoidPostingsShowData, AvoidPostingsShowErrors, AvoidPostingsShowResponses, AvoidPostingsUndeleteData, AvoidPostingsUndeleteErrors, AvoidPostingsUndeleteResponses, AvoidPostingsUpdateData, AvoidPostingsUpdateErrors, AvoidPostingsUpdateResponses, AvoidPostingVersionsIndexData, AvoidPostingVersionsIndexResponses, BansIndexData, BansIndexResponses, BansShowData, BansShowErrors, BansShowResponses, BlipsCreateData, BlipsCreateErrors, BlipsCreateResponses, BlipsDeleteData, BlipsDeleteErrors, BlipsDestroyData, BlipsDestroyErrors, BlipsDestroyResponses, BlipsIndexData, BlipsIndexResponses, BlipsShowData, BlipsShowErrors, BlipsShowResponses, BlipsUndeleteData, BlipsUndeleteErrors, BlipsUpdateData, BlipsUpdateErrors, BlipsUpdateResponses, BlipsWarningData, BlipsWarningErrors, BlipsWarningResponses, BulkUpdateRequestsApproveData, BulkUpdateRequestsApproveErrors, BulkUpdateRequestsApproveResponses, BulkUpdateRequestsCreateData, BulkUpdateRequestsCreateErrors, BulkUpdateRequestsCreateResponses, BulkUpdateRequestsDestroyData, BulkUpdateRequestsDestroyErrors, BulkUpdateRequestsDestroyResponses, BulkUpdateRequestsIndexData, BulkUpdateRequestsIndexResponses, BulkUpdateRequestsShowData, BulkUpdateRequestsShowErrors, BulkUpdateRequestsShowResponses, BulkUpdateRequestsUpdateData, BulkUpdateRequestsUpdateErrors, BulkUpdateRequestsUpdateResponses, CommentsCreateData, CommentsCreateErrors, CommentsCreateResponses, CommentsDestroyData, CommentsDestroyErrors, CommentsDestroyResponses, CommentsHideData, CommentsHideErrors, CommentsHideResponses, CommentsIndexData, CommentsIndexResponses, CommentsShowData, CommentsShowErrors, CommentsShowResponses, CommentsUnhideData, CommentsUnhideErrors, CommentsUnhideResponses, CommentsUpdateData, CommentsUpdateErrors, CommentsUpdateResponses, CommentsWarningData, CommentsWarningErrors, CommentsWarningResponses, CommentVotesCreateData, CommentVotesCreateErrors, CommentVotesCreateResponses, CommentVotesDeleteData, CommentVotesDeleteErrors, CommentVotesDeleteResponses, CommentVotesDestroyData, CommentVotesDestroyErrors, CommentVotesDestroyResponses, CommentVotesIndexData, CommentVotesIndexResponses, CommentVotesLockData, CommentVotesLockErrors, CommentVotesLockResponses, DbExportsIndexData, DbExportsIndexResponses, DmailsDestroyData, DmailsDestroyErrors, DmailsDestroyResponses, DmailsIndexData, DmailsIndexResponses, DmailsMarkAllAsReadData, DmailsMarkAllAsReadErrors, DmailsMarkAllAsReadResponses, DmailsMarkAsReadData, DmailsMarkAsReadErrors, DmailsMarkAsReadResponses, DmailsMarkAsUnreadData, DmailsMarkAsUnreadErrors, DmailsMarkAsUnreadResponses, DmailsShowData, DmailsShowErrors, DmailsShowResponses, DtextPreviewsCreateData, DtextPreviewsCreateResponses, EditHistoriesIndexData, EditHistoriesIndexErrors, EditHistoriesIndexResponses, EditHistoriesShowData, EditHistoriesShowErrors, EditHistoriesShowResponses, EmailBlacklistsCreateData, EmailBlacklistsCreateErrors, EmailBlacklistsCreateResponses, EmailBlacklistsDestroyData, EmailBlacklistsDestroyErrors, EmailBlacklistsDestroyResponses, EmailBlacklistsIndexData, EmailBlacklistsIndexResponses, FavoritesCreateData, FavoritesCreateErrors, FavoritesCreateResponses, FavoritesDestroyData, FavoritesDestroyErrors, FavoritesDestroyResponses, FavoritesIndexData, FavoritesIndexErrors, FavoritesIndexResponses, ForumPostsCreateData, ForumPostsCreateErrors, ForumPostsCreateResponses, ForumPostsDestroyData, ForumPostsDestroyErrors, ForumPostsDestroyResponses, ForumPostsHideData, ForumPostsHideErrors, ForumPostsHideResponses, ForumPostsIndexData, ForumPostsIndexResponses, ForumPostsShowData, ForumPostsShowErrors, ForumPostsShowResponses, ForumPostsUnhideData, ForumPostsUnhideErrors, ForumPostsUnhideResponses, ForumPostsUpdateData, ForumPostsUpdateErrors, ForumPostsUpdateResponses, ForumPostsWarningData, ForumPostsWarningErrors, ForumPostsWarningResponses, ForumPostVotesCreateData, ForumPostVotesCreateErrors, ForumPostVotesCreateResponses, ForumPostVotesDestroyData, ForumPostVotesDestroyErrors, ForumPostVotesDestroyResponses, ForumPostVotesShowData, ForumPostVotesShowErrors, ForumPostVotesShowResponses, ForumTopicsCreateData, ForumTopicsCreateErrors, ForumTopicsCreateResponses, ForumTopicsDestroyData, ForumTopicsDestroyErrors, ForumTopicsDestroyResponses, ForumTopicsHideData, ForumTopicsHideErrors, ForumTopicsHideResponses, ForumTopicsIndexData, ForumTopicsIndexResponses, ForumTopicsMarkAllAsReadData, ForumTopicsMarkAllAsReadErrors, ForumTopicsMarkAllAsReadResponses, ForumTopicsShowData, ForumTopicsShowErrors, ForumTopicsShowResponses, ForumTopicsSubscribeData, ForumTopicsSubscribeErrors, ForumTopicsSubscribeResponses, ForumTopicsUnhideData, ForumTopicsUnhideErrors, ForumTopicsUnhideResponses, ForumTopicsUnsubscribeData, ForumTopicsUnsubscribeErrors, ForumTopicsUnsubscribeResponses, ForumTopicsUpdateData, ForumTopicsUpdateErrors, ForumTopicsUpdateResponses, HealthIndexData, HealthIndexResponses, HelpCreateData, HelpCreateErrors, HelpCreateResponses, HelpDestroyData, HelpDestroyErrors, HelpDestroyResponses, HelpIndexData, HelpIndexErrors, HelpIndexResponses, HelpListData, HelpListResponses, HelpShowData, HelpShowErrors, HelpShowResponses, HelpUpdateData, HelpUpdateErrors, HelpUpdateResponses, IpBansCreateData, IpBansCreateErrors, IpBansCreateResponses, IpBansDestroyData, IpBansDestroyErrors, IpBansDestroyResponses, IpBansIndexData, IpBansIndexResponses, IqdbQueriesShowData, IqdbQueriesShowErrors, IqdbQueriesShowPostData, IqdbQueriesShowPostErrors, IqdbQueriesShowPostResponses, IqdbQueriesShowResponses, MaintenanceUserAvatarsUpdateData, MaintenanceUserAvatarsUpdateErrors, MaintenanceUserCountFixesCreateData, MaintenanceUserCountFixesCreateErrors, MaintenanceUserDmailFiltersUpdateData, MaintenanceUserDmailFiltersUpdateErrors, MaintenanceUserDmailFiltersUpdateResponses, MascotsCreateData, MascotsCreateErrors, MascotsCreateResponses, MascotsDestroyData, MascotsDestroyErrors, MascotsDestroyResponses, MascotsIndexData, MascotsIndexResponses, MascotsUpdateData, MascotsUpdateErrors, MascotsUpdateResponses, ModActionsIndexData, ModActionsIndexResponses, ModActionsShowData, ModActionsShowErrors, ModActionsShowResponses, NewsUpdatesCreateData, NewsUpdatesCreateErrors, NewsUpdatesCreateResponses, NewsUpdatesDestroyData, NewsUpdatesDestroyErrors, NewsUpdatesDestroyResponses, NewsUpdatesIndexData, NewsUpdatesIndexResponses, NewsUpdatesUpdateData, NewsUpdatesUpdateErrors, NewsUpdatesUpdateResponses, NotesCreateData, NotesCreateErrors, NotesCreateResponses, NotesDestroyData, NotesDestroyErrors, NotesDestroyResponses, NotesIndexData, NotesIndexResponses, NotesRevertData, NotesRevertErrors, NotesRevertResponses, NotesShowData, NotesShowErrors, NotesShowResponses, NotesUpdateData, NotesUpdateErrors, NotesUpdateResponses, NoteVersionsIndexData, NoteVersionsIndexResponses, PoolElementsCreateData, PoolElementsCreateErrors, PoolElementsCreateResponses, PoolElementsDestroyData, PoolElementsDestroyErrors, PoolElementsDestroyResponses, PoolElementsRecentData, PoolElementsRecentResponses, PoolsCreateData, PoolsCreateErrors, PoolsCreateResponses, PoolsDestroyData, PoolsDestroyErrors, PoolsDestroyResponses, PoolsIndexData, PoolsIndexResponses, PoolsRevertData, PoolsRevertErrors, PoolsRevertResponses, PoolsShowData, PoolsShowErrors, PoolsShowResponses, PoolsUpdateData, PoolsUpdateErrors, PoolsUpdateResponses, PoolVersionsIndexData, PoolVersionsIndexResponses, PopularIndexData, PopularIndexErrors, PopularIndexResponses, PostApprovalsIndexData, PostApprovalsIndexResponses, PostEventsIndexData, PostEventsIndexResponses, PostFavoritesIndexData, PostFavoritesIndexErrors, PostFavoritesIndexResponses, PostFlagsClearNoteData, PostFlagsClearNoteErrors, PostFlagsClearNoteResponses, PostFlagsCreateData, PostFlagsCreateErrors, PostFlagsCreateResponses, PostFlagsDestroyData, PostFlagsDestroyErrors, PostFlagsDestroyResponses, PostFlagsIndexData, PostFlagsIndexResponses, PostFlagsShowData, PostFlagsShowErrors, PostFlagsShowResponses, PostRecommendationsArtistData, PostRecommendationsArtistErrors, PostRecommendationsArtistResponses, PostRecommendationsTagsData, PostRecommendationsTagsErrors, PostRecommendationsTagsResponses, PostReplacementsApproveData, PostReplacementsApproveErrors, PostReplacementsApproveResponses, PostReplacementsCreateData, PostReplacementsCreateErrors, PostReplacementsCreateResponses, PostReplacementsDestroyData, PostReplacementsDestroyErrors, PostReplacementsDestroyResponses, PostReplacementsIndexData, PostReplacementsIndexResponses, PostReplacementsPromoteData, PostReplacementsPromoteErrors, PostReplacementsPromoteResponses, PostReplacementsRejectData, PostReplacementsRejectErrors, PostReplacementsRejectResponses, PostReplacementsTogglePenalizeData, PostReplacementsTogglePenalizeErrors, PostReplacementsTogglePenalizeResponses, PostsCopyNotesData, PostsCopyNotesErrors, PostsCopyNotesResponses, PostSetsAddPostsData, PostSetsAddPostsErrors, PostSetsAddPostsResponses, PostSetsCreateData, PostSetsCreateErrors, PostSetsCreateResponses, PostSetsDestroyData, PostSetsDestroyErrors, PostSetsDestroyResponses, PostSetsForSelectData, PostSetsForSelectErrors, PostSetsForSelectResponses, PostSetsIndexData, PostSetsIndexResponses, PostSetsRemovePostsData, PostSetsRemovePostsErrors, PostSetsRemovePostsResponses, PostSetsShowData, PostSetsShowErrors, PostSetsShowResponses, PostSetsUpdateData, PostSetsUpdateErrors, PostSetsUpdatePostsData, PostSetsUpdatePostsErrors, PostSetsUpdatePostsResponses, PostSetsUpdateResponses, PostsIndexData, PostsIndexResponses, PostsMarkAsTranslatedData, PostsMarkAsTranslatedErrors, PostsMarkAsTranslatedResponses, PostsRandomData, PostsRandomErrors, PostsRandomResponses, PostsRevertData, PostsRevertErrors, PostsRevertResponses, PostsShowData, PostsShowErrors, PostsShowResponses, PostsShowSeqData, PostsShowSeqErrors, PostsShowSeqResponses, PostsUpdateData, PostsUpdateErrors, PostsUpdateIqdbData, PostsUpdateIqdbErrors, PostsUpdateIqdbResponses, PostsUpdateResponses, PostVersionsHideData, PostVersionsHideErrors, PostVersionsIndexData, PostVersionsIndexResponses, PostVersionsUndoData, PostVersionsUndoErrors, PostVersionsUndoResponses, PostVersionsUnhideData, PostVersionsUnhideErrors, PostVotesCreateData, PostVotesCreateErrors, PostVotesCreateResponses, PostVotesDeleteData, PostVotesDeleteErrors, PostVotesDeleteResponses, PostVotesDestroyData, PostVotesDestroyErrors, PostVotesDestroyResponses, PostVotesIndexData, PostVotesIndexResponses, PostVotesLockData, PostVotesLockErrors, PostVotesLockResponses, RelatedTagsBulkData, RelatedTagsBulkErrors, RelatedTagsBulkResponses, SearchTrendBlacklistsCreateData, SearchTrendBlacklistsCreateErrors, SearchTrendBlacklistsCreateResponses, SearchTrendBlacklistsDestroyData, SearchTrendBlacklistsDestroyErrors, SearchTrendBlacklistsDestroyResponses, SearchTrendBlacklistsIndexData, SearchTrendBlacklistsIndexErrors, SearchTrendBlacklistsIndexResponses, SearchTrendsClearCacheData, SearchTrendsClearCacheErrors, SearchTrendsClearCacheResponses, SearchTrendsIndexData, SearchTrendsIndexResponses, SearchTrendsPurgeData, SearchTrendsPurgeErrors, SearchTrendsPurgeResponses, SearchTrendsRisingData, SearchTrendsRisingResponses, SearchTrendsUpdateSettingsData, SearchTrendsUpdateSettingsErrors, SearchTrendsUpdateSettingsResponses, SessionsCreateData, SessionsCreateErrors, StaffAutomodDmailsIndexData, StaffAutomodDmailsIndexResponses, StaffAutomodDmailsMarkAsReadData, StaffAutomodDmailsMarkAsReadErrors, StaffAutomodDmailsMarkAsReadResponses, StaffAutomodDmailsMarkAsUnreadData, StaffAutomodDmailsMarkAsUnreadErrors, StaffAutomodDmailsMarkAsUnreadResponses, StaffAutomodDmailsShowData, StaffAutomodDmailsShowErrors, StaffAutomodDmailsShowResponses, StaffDmailsIndexData, StaffDmailsIndexErrors, StaffDmailsIndexResponses, StaffDmailsShowData, StaffDmailsShowErrors, StaffDmailsShowResponses, StaffExceptionsIndexData, StaffExceptionsIndexResponses, StaffExceptionsShowData, StaffExceptionsShowResponses, StaffFilesCreateData, StaffFilesCreateErrors, StaffFilesCreateResponses, StaffFilesDestroyData, StaffFilesDestroyErrors, StaffFilesDestroyResponses, StaffFilesIndexData, StaffFilesIndexErrors, StaffFilesIndexResponses, StaffFilesShowData, StaffFilesShowErrors, StaffFilesShowResponses, StaffFilesUpdateData, StaffFilesUpdateErrors, StaffFilesUpdateResponses, StaffNotesCreateData, StaffNotesCreateErrors, StaffNotesCreateResponses, StaffNotesDeleteData, StaffNotesDeleteErrors, StaffNotesDeleteResponses, StaffNotesIndexData, StaffNotesIndexResponses, StaffNotesShowData, StaffNotesShowErrors, StaffNotesShowResponses, StaffNotesUndeleteData, StaffNotesUndeleteErrors, StaffNotesUndeleteResponses, StaffNotesUpdateData, StaffNotesUpdateErrors, StaffNotesUpdateResponses, StaffPostApprovalsCreateData, StaffPostApprovalsCreateErrors, StaffPostApprovalsCreateResponses, StaffPostApprovalsDestroyData, StaffPostApprovalsDestroyErrors, StaffPostApprovalsDestroyResponses, StaffPostDisapprovalsCreateData, StaffPostDisapprovalsCreateErrors, StaffPostDisapprovalsCreateResponses, StaffPostDisapprovalsIndexData, StaffPostDisapprovalsIndexResponses, StaffPostPostsAiCheckData, StaffPostPostsAiCheckErrors, StaffPostPostsDeleteData, StaffPostPostsDeleteErrors, StaffPostPostsExpungeData, StaffPostPostsExpungeErrors, StaffPostPostsExpungeResponses, StaffPostPostsMoveFavoritesData, StaffPostPostsMoveFavoritesErrors, StaffPostPostsPreviousOwnersData, StaffPostPostsPreviousOwnersErrors, StaffPostPostsPreviousOwnersResponses, StaffPostPostsRegenerateThumbnailsData, StaffPostPostsRegenerateThumbnailsErrors, StaffPostPostsRegenerateThumbnailsResponses, StaffPostPostsRegenerateVideosData, StaffPostPostsRegenerateVideosErrors, StaffPostPostsRegenerateVideosResponses, StaffPostPostsReownerData, StaffPostPostsReownerErrors, StaffPostPostsReownerResponses, StaffPostPostsUndeleteData, StaffPostPostsUndeleteErrors, StaffPostPostsUndeleteResponses, StaffUserCleanupsClearAvatarData, StaffUserCleanupsClearAvatarErrors, StaffUserCleanupsClearProfileData, StaffUserCleanupsClearProfileErrors, StaffUserCleanupsHideBlipsData, StaffUserCleanupsHideBlipsErrors, StaffUserCleanupsHideCommentsData, StaffUserCleanupsHideCommentsErrors, StaffUserCleanupsHideForumPostsData, StaffUserCleanupsHideForumPostsErrors, StaffUsersAltListData, StaffUsersAltListResponses, StaffUsersAnonymizeConfirmData, StaffUsersAnonymizeConfirmErrors, StaffUsersUpdateData, StaffUsersUpdateErrors, StaffUsersUpdateResponses, StaffVoteTrendsIndexData, StaffVoteTrendsIndexResponses, StaffWikisClaimData, StaffWikisClaimErrors, StaffWikisClaimResponses, StaffWikisCreateData, StaffWikisCreateErrors, StaffWikisCreateResponses, StaffWikisDestroyData, StaffWikisDestroyErrors, StaffWikisDestroyResponses, StaffWikisIndexData, StaffWikisIndexErrors, StaffWikisIndexResponses, StaffWikisShowData, StaffWikisShowErrors, StaffWikisShowResponses, StaffWikisUnclaimData, StaffWikisUnclaimErrors, StaffWikisUnclaimResponses, StaffWikisUpdateData, StaffWikisUpdateErrors, StaffWikisUpdateResponses, StaffWikiVersionsIndexData, StaffWikiVersionsIndexErrors, StaffWikiVersionsIndexResponses, StaffWikiVersionsShowData, StaffWikiVersionsShowErrors, StaffWikiVersionsShowResponses, TagAliasesApproveData, TagAliasesApproveErrors, TagAliasesApproveResponses, TagAliasesDestroyData, TagAliasesDestroyErrors, TagAliasesDestroyResponses, TagAliasesIndexData, TagAliasesIndexResponses, TagAliasesShowData, TagAliasesShowErrors, TagAliasesShowResponses, TagAliasesUpdateData, TagAliasesUpdateErrors, TagAliasesUpdateResponses, TagAliasRequestsCreateData, TagAliasRequestsCreateErrors, TagCorrectionsCreateData, TagCorrectionsCreateErrors, TagCorrectionsShowData, TagCorrectionsShowErrors, TagCorrectionsShowResponses, TagImplicationRequestsCreateData, TagImplicationRequestsCreateErrors, TagImplicationsApproveData, TagImplicationsApproveErrors, TagImplicationsApproveResponses, TagImplicationsDestroyData, TagImplicationsDestroyErrors, TagImplicationsDestroyResponses, TagImplicationsIndexData, TagImplicationsIndexResponses, TagImplicationsShowData, TagImplicationsShowErrors, TagImplicationsShowResponses, TagImplicationsUpdateData, TagImplicationsUpdateErrors, TagImplicationsUpdateResponses, TagsDestroyData, TagsDestroyErrors, TagsDestroyResponses, TagsIndexData, TagsIndexResponses, TagsPreviewData, TagsPreviewErrors, TagsPreviewResponses, TagsShowData, TagsShowErrors, TagsShowResponses, TagsUpdateData, TagsUpdateErrors, TagsUpdateResponses, TagTypeVersionsIndexData, TagTypeVersionsIndexResponses, TakedownsAddByIdsData, TakedownsAddByIdsErrors, TakedownsAddByIdsResponses, TakedownsAddByTagsData, TakedownsAddByTagsErrors, TakedownsAddByTagsResponses, TakedownsCountMatchingPostsData, TakedownsCountMatchingPostsErrors, TakedownsCountMatchingPostsResponses, TakedownsCreateData, TakedownsCreateErrors, TakedownsCreateResponses, TakedownsDestroyData, TakedownsDestroyErrors, TakedownsDestroyResponses, TakedownsIndexData, TakedownsIndexResponses, TakedownsRemoveByIdsData, TakedownsRemoveByIdsErrors, TakedownsRemoveByIdsResponses, TakedownsShowData, TakedownsShowErrors, TakedownsShowResponses, TakedownsUpdateData, TakedownsUpdateErrors, TakedownsUpdateResponses, TicketsClaimData, TicketsClaimErrors, TicketsClaimResponses, TicketsIndexData, TicketsIndexErrors, TicketsIndexResponses, TicketsShowData, TicketsShowErrors, TicketsShowResponses, TicketsUnclaimData, TicketsUnclaimErrors, TicketsUnclaimResponses, TicketsUpdateData, TicketsUpdateErrors, TicketsUpdateResponses, UploadsCreateData, UploadsCreateErrors, UploadsCreateResponses, UploadsIndexData, UploadsIndexResponses, UploadsShowData, UploadsShowErrors, UploadsShowResponses, UploadWhitelistsCreateData, UploadWhitelistsCreateErrors, UploadWhitelistsCreateResponses, UploadWhitelistsDestroyData, UploadWhitelistsDestroyErrors, UploadWhitelistsDestroyResponses, UploadWhitelistsIndexData, UploadWhitelistsIndexResponses, UploadWhitelistsIsAllowedData, UploadWhitelistsIsAllowedErrors, UploadWhitelistsIsAllowedResponses, UploadWhitelistsUpdateData, UploadWhitelistsUpdateErrors, UploadWhitelistsUpdateResponses, UserFeedbacksCreateData, UserFeedbacksCreateErrors, UserFeedbacksCreateResponses, UserFeedbacksDeleteData, UserFeedbacksDeleteErrors, UserFeedbacksDeleteResponses, UserFeedbacksDestroyData, UserFeedbacksDestroyErrors, UserFeedbacksDestroyResponses, UserFeedbacksIndexData, UserFeedbacksIndexResponses, UserFeedbacksShowData, UserFeedbacksShowErrors, UserFeedbacksShowResponses, UserFeedbacksUndeleteData, UserFeedbacksUndeleteErrors, UserFeedbacksUndeleteResponses, UserFeedbacksUpdateData, UserFeedbacksUpdateErrors, UserFeedbacksUpdateResponses, UserNameChangeRequestsCreateData, UserNameChangeRequestsCreateErrors, UserNameChangeRequestsDestroyData, UserNameChangeRequestsDestroyErrors, UserNameChangeRequestsIndexData, UserNameChangeRequestsIndexResponses, UserNameChangeRequestsShowData, UserNameChangeRequestsShowErrors, UserNameChangeRequestsShowResponses, UsersAvatarMenuData, UsersAvatarMenuErrors, UsersAvatarMenuResponses, UsersDisableUploadsData, UsersDisableUploadsErrors, UsersFixCountsData, UsersFixCountsErrors, UsersFlushFavoritesData, UsersFlushFavoritesErrors, UsersIndexData, UsersIndexResponses, UsersMeData, UsersMeResponses, UsersShowData, UsersShowErrors, UsersShowResponses, UsersToggleUploadsData, UsersToggleUploadsErrors, UsersUpdateData, UsersUpdateErrors, UsersUpdateResponses, UsersUploadLimitData, UsersUploadLimitErrors, UsersUploadLimitResponses, WikiPagesCreateData, WikiPagesCreateErrors, WikiPagesCreateResponses, WikiPagesDestroyData, WikiPagesDestroyErrors, WikiPagesDestroyResponses, WikiPagesIndexData, WikiPagesIndexResponses, WikiPagesRevertData, WikiPagesRevertErrors, WikiPagesRevertResponses, WikiPagesShowData, WikiPagesShowErrors, WikiPagesShowResponses, WikiPagesUpdateData, WikiPagesUpdateErrors, WikiPagesUpdateResponses, WikiPageVersionsIndexData, WikiPageVersionsIndexResponses, WikiPageVersionsShowData, WikiPageVersionsShowErrors, WikiPageVersionsShowResponses } from './types.js';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * API Keys Index\n *\n * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).\n */\nexport const apiKeys_index = <ThrowOnError extends boolean = false>(options?: Options<ApiKeysIndexData, ThrowOnError>) => (options?.client ?? client).get<ApiKeysIndexResponses, ApiKeysIndexErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: '_danbooru_session',\n type: 'apiKey'\n }],\n url: '/api_keys.json',\n ...options\n});\n\n/**\n * Create API Key\n *\n * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).\n */\nexport const apiKeys_create = <ThrowOnError extends boolean = false>(options?: Options<ApiKeysCreateData, ThrowOnError>) => (options?.client ?? client).post<ApiKeysCreateResponses, ApiKeysCreateErrors, ThrowOnError>({\n ...urlSearchParamsBodySerializer,\n security: [{\n in: 'cookie',\n name: '_danbooru_session',\n type: 'apiKey'\n }, {\n in: 'query',\n name: 'authenticity_token',\n type: 'apiKey'\n }],\n url: '/api_keys.json',\n ...options,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...options?.headers\n }\n});\n\n/**\n * Delete API Key\n *\n * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).\n */\nexport const apiKeys_destroy = <ThrowOnError extends boolean = false>(options: Options<ApiKeysDestroyData, ThrowOnError>) => (options.client ?? client).delete<ApiKeysDestroyResponses, ApiKeysDestroyErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: '_danbooru_session',\n type: 'apiKey'\n }, {\n in: 'query',\n name: 'authenticity_token',\n type: 'apiKey'\n }],\n url: '/api_keys/{id}.json',\n ...options\n});\n\n/**\n * Regenerate API Key\n *\n * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).\n */\nexport const apiKeys_regenerate = <ThrowOnError extends boolean = false>(options: Options<ApiKeysRegenerateData, ThrowOnError>) => (options.client ?? client).post<ApiKeysRegenerateResponses, ApiKeysRegenerateErrors, ThrowOnError>({\n ...urlSearchParamsBodySerializer,\n security: [{\n in: 'cookie',\n name: '_danbooru_session',\n type: 'apiKey'\n }, {\n in: 'query',\n name: 'authenticity_token',\n type: 'apiKey'\n }],\n url: '/api_keys/{id}/regenerate.json',\n ...options,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...options.headers\n }\n});\n\n/**\n * Appeals Index\n *\n * Requires Janitor+ to see appeals not created by you.\n */\nexport const appeals_index = <ThrowOnError extends boolean = false>(options?: Options<AppealsIndexData, ThrowOnError>) => (options?.client ?? client).get<AppealsIndexResponses, AppealsIndexErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: '_danbooru_session',\n type: 'apiKey'\n }],\n url: '/appeals.json',\n ...options\n});\n\n/**\n * Get Appeal\n *\n * Requires Janitor+ to see appeals not created by you.\n */\nexport const appeals_show = <ThrowOnError extends boolean = false>(options: Options<AppealsShowData, ThrowOnError>) => (options.client ?? client).get<AppealsShowResponses, AppealsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/appeals/{id}.json',\n ...options\n});\n\n/**\n * Update Appeal\n *\n * You must be Janitor+.\n */\nexport const appeals_update = <ThrowOnError extends boolean = false>(options: Options<AppealsUpdateData, ThrowOnError>) => (options.client ?? client).patch<AppealsUpdateResponses, AppealsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/appeals/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Claim Appeal\n *\n * You must be Janitor+\n */\nexport const appeals_claim = <ThrowOnError extends boolean = false>(options: Options<AppealsClaimData, ThrowOnError>) => (options.client ?? client).post<AppealsClaimResponses, AppealsClaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/appeals/{id}/claim.json',\n ...options\n});\n\n/**\n * Unclaim Appeal\n *\n * You must be Janitor+\n */\nexport const appeals_unclaim = <ThrowOnError extends boolean = false>(options: Options<AppealsUnclaimData, ThrowOnError>) => (options.client ?? client).post<AppealsUnclaimResponses, AppealsUnclaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/appeals/{id}/unclaim.json',\n ...options\n});\n\n/**\n * Artists Index\n */\nexport const artists_index = <ThrowOnError extends boolean = false>(options?: Options<ArtistsIndexData, ThrowOnError>) => (options?.client ?? client).get<ArtistsIndexResponses, unknown, ThrowOnError>({ url: '/artists.json', ...options });\n\n/**\n * Create Artist\n *\n * `other_names` & `urls` are silently truncated to 25 entries.\n * `notes` is silently truncated to the wiki page limit (250,000).\n * Individual `other_names` are silently truncated to 100 characters.\n *\n */\nexport const artists_create = <ThrowOnError extends boolean = false>(options?: Options<ArtistsCreateData, ThrowOnError>) => (options?.client ?? client).post<ArtistsCreateResponses, ArtistsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/artists.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Artist\n *\n * You must be an Admin+ to delete an artist.\n *\n */\nexport const artists_destroy = <ThrowOnError extends boolean = false>(options: Options<ArtistsDestroyData, ThrowOnError>) => (options.client ?? client).delete<ArtistsDestroyResponses, ArtistsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/artists/{idOrName}.json',\n ...options\n});\n\n/**\n * Get Artist\n */\nexport const artists_show = <ThrowOnError extends boolean = false>(options: Options<ArtistsShowData, ThrowOnError>) => (options.client ?? client).get<ArtistsShowResponses, ArtistsShowErrors, ThrowOnError>({ url: '/artists/{idOrName}.json', ...options });\n\n/**\n * Update Artist\n *\n * If an artist is locked, you must be Staff+ to edit them.\n * `other_names` & `urls` are silently truncated to 25 entries.\n * `notes` is silently truncated to the wiki page limit (250,000).\n * Individual `other_names` are silently truncated to 100 characters.\n * If an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.\n *\n */\nexport const artists_update = <ThrowOnError extends boolean = false>(options: Options<ArtistsUpdateData, ThrowOnError>) => (options.client ?? client).patch<ArtistsUpdateResponses, ArtistsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/artists/{idOrName}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revert Artist\n *\n * If an artist is locked, you must be Staff+ to revert them.\n *\n */\nexport const artists_revert = <ThrowOnError extends boolean = false>(options: Options<ArtistsRevertData, ThrowOnError>) => (options.client ?? client).put<ArtistsRevertResponses, ArtistsRevertErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/artists/{idOrName}/revert.json',\n ...options\n});\n\n/**\n * Artist Versions Index\n */\nexport const artistVersions_index = <ThrowOnError extends boolean = false>(options?: Options<ArtistVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<ArtistVersionsIndexResponses, unknown, ThrowOnError>({ url: '/artist_versions.json', ...options });\n\n/**\n * Artist URLs Index\n */\nexport const artistUrls_index = <ThrowOnError extends boolean = false>(options?: Options<ArtistUrlsIndexData, ThrowOnError>) => (options?.client ?? client).get<ArtistUrlsIndexResponses, unknown, ThrowOnError>({\n querySerializer: { parameters: { 'search[artist]': { object: { style: 'form' } } } },\n url: '/artist_urls.json',\n ...options\n});\n\n/**\n * Avoid Posting Index\n */\nexport const avoidPostings_index = <ThrowOnError extends boolean = false>(options?: Options<AvoidPostingsIndexData, ThrowOnError>) => (options?.client ?? client).get<AvoidPostingsIndexResponses, unknown, ThrowOnError>({ url: '/avoid_postings.json', ...options });\n\n/**\n * Create Avoid Posting\n *\n * Must have the bd staff user flag.\n */\nexport const avoidPostings_create = <ThrowOnError extends boolean = false>(options?: Options<AvoidPostingsCreateData, ThrowOnError>) => (options?.client ?? client).post<AvoidPostingsCreateResponses, AvoidPostingsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/avoid_postings.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Destroy Avoid Posting\n *\n * Must have the bd staff user flag.\n */\nexport const avoidPostings_destroy = <ThrowOnError extends boolean = false>(options: Options<AvoidPostingsDestroyData, ThrowOnError>) => (options.client ?? client).delete<AvoidPostingsDestroyResponses, AvoidPostingsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/avoid_postings/{idOrName}.json',\n ...options\n});\n\n/**\n * Get Avoid Posting\n */\nexport const avoidPostings_show = <ThrowOnError extends boolean = false>(options: Options<AvoidPostingsShowData, ThrowOnError>) => (options.client ?? client).get<AvoidPostingsShowResponses, AvoidPostingsShowErrors, ThrowOnError>({ url: '/avoid_postings/{idOrName}.json', ...options });\n\n/**\n * Update Avoid Posting\n *\n * Must have the bd staff user flag.\n */\nexport const avoidPostings_update = <ThrowOnError extends boolean = false>(options: Options<AvoidPostingsUpdateData, ThrowOnError>) => (options.client ?? client).patch<AvoidPostingsUpdateResponses, AvoidPostingsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/avoid_postings/{idOrName}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete Avoid Posting\n *\n * Soft deletion. Must have the bd staff user flag.\n */\nexport const avoidPostings_delete = <ThrowOnError extends boolean = false>(options: Options<AvoidPostingsDeleteData, ThrowOnError>) => (options.client ?? client).put<AvoidPostingsDeleteResponses, AvoidPostingsDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/avoid_postings/{idOrName}/delete.json',\n ...options\n});\n\n/**\n * Undelete Avoid Posting\n *\n * Must have the bd staff user flag.\n */\nexport const avoidPostings_undelete = <ThrowOnError extends boolean = false>(options: Options<AvoidPostingsUndeleteData, ThrowOnError>) => (options.client ?? client).put<AvoidPostingsUndeleteResponses, AvoidPostingsUndeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/avoid_postings/{idOrName}/undelete.json',\n ...options\n});\n\n/**\n * Avoid Posting Versions Index\n */\nexport const avoidPostingVersions_index = <ThrowOnError extends boolean = false>(options?: Options<AvoidPostingVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<AvoidPostingVersionsIndexResponses, unknown, ThrowOnError>({ url: '/avoid_posting_versions.json', ...options });\n\n/**\n * Bans Index\n */\nexport const bans_index = <ThrowOnError extends boolean = false>(options?: Options<BansIndexData, ThrowOnError>) => (options?.client ?? client).get<BansIndexResponses, unknown, ThrowOnError>({ url: '/bans.json', ...options });\n\n/**\n * Get Ban\n */\nexport const bans_show = <ThrowOnError extends boolean = false>(options: Options<BansShowData, ThrowOnError>) => (options.client ?? client).get<BansShowResponses, BansShowErrors, ThrowOnError>({ url: '/bans/{id}.json', ...options });\n\n/**\n * Blips Index\n */\nexport const blips_index = <ThrowOnError extends boolean = false>(options?: Options<BlipsIndexData, ThrowOnError>) => (options?.client ?? client).get<BlipsIndexResponses, unknown, ThrowOnError>({ url: '/blips.json', ...options });\n\n/**\n * Create Blip\n */\nexport const blips_create = <ThrowOnError extends boolean = false>(options?: Options<BlipsCreateData, ThrowOnError>) => (options?.client ?? client).post<BlipsCreateResponses, BlipsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Destroy Blip\n *\n * You must be Admin+.\n *\n */\nexport const blips_destroy = <ThrowOnError extends boolean = false>(options: Options<BlipsDestroyData, ThrowOnError>) => (options.client ?? client).delete<BlipsDestroyResponses, BlipsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips/{id}.json',\n ...options\n});\n\n/**\n * Get Blip\n */\nexport const blips_show = <ThrowOnError extends boolean = false>(options: Options<BlipsShowData, ThrowOnError>) => (options.client ?? client).get<BlipsShowResponses, BlipsShowErrors, ThrowOnError>({ url: '/blips/{id}.json', ...options });\n\n/**\n * Update Blip\n *\n * Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.\n */\nexport const blips_update = <ThrowOnError extends boolean = false>(options: Options<BlipsUpdateData, ThrowOnError>) => (options.client ?? client).patch<BlipsUpdateResponses, BlipsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete Blip\n *\n * Soft deletion. You must be the creator or Moderator+.\n *\n */\nexport const blips_delete = <ThrowOnError extends boolean = false>(options: Options<BlipsDeleteData, ThrowOnError>) => (options.client ?? client).post<unknown, BlipsDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips/{id}/delete.json',\n ...options\n});\n\n/**\n * Undelete Blip\n *\n * You must be Moderator+.\n *\n */\nexport const blips_undelete = <ThrowOnError extends boolean = false>(options: Options<BlipsUndeleteData, ThrowOnError>) => (options.client ?? client).post<unknown, BlipsUndeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips/{id}/undelete.json',\n ...options\n});\n\n/**\n * Mark Blip\n *\n * You must be Moderator+.\n */\nexport const blips_warning = <ThrowOnError extends boolean = false>(options: Options<BlipsWarningData, ThrowOnError>) => (options.client ?? client).post<BlipsWarningResponses, BlipsWarningErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/blips/{id}/warning.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Bulk Update Requests Index\n */\nexport const bulkUpdateRequests_index = <ThrowOnError extends boolean = false>(options?: Options<BulkUpdateRequestsIndexData, ThrowOnError>) => (options?.client ?? client).get<BulkUpdateRequestsIndexResponses, unknown, ThrowOnError>({ url: '/bulk_update_requests.json', ...options });\n\n/**\n * Create Bulk Update Request\n */\nexport const bulkUpdateRequests_create = <ThrowOnError extends boolean = false>(options?: Options<BulkUpdateRequestsCreateData, ThrowOnError>) => (options?.client ?? client).post<BulkUpdateRequestsCreateResponses, BulkUpdateRequestsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/bulk_update_requests.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Reject Bulk Update Request\n *\n * You must be the creator of the BUR, or Admin+.\n */\nexport const bulkUpdateRequests_destroy = <ThrowOnError extends boolean = false>(options: Options<BulkUpdateRequestsDestroyData, ThrowOnError>) => (options.client ?? client).delete<BulkUpdateRequestsDestroyResponses, BulkUpdateRequestsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/bulk_update_requests/{id}.json',\n ...options\n});\n\n/**\n * Get Bulk Update Request\n */\nexport const bulkUpdateRequests_show = <ThrowOnError extends boolean = false>(options: Options<BulkUpdateRequestsShowData, ThrowOnError>) => (options.client ?? client).get<BulkUpdateRequestsShowResponses, BulkUpdateRequestsShowErrors, ThrowOnError>({ url: '/bulk_update_requests/{id}.json', ...options });\n\n/**\n * Update Bulk Update Request\n *\n * You must be the creator of the BUR, or Admin+.\n */\nexport const bulkUpdateRequests_update = <ThrowOnError extends boolean = false>(options: Options<BulkUpdateRequestsUpdateData, ThrowOnError>) => (options.client ?? client).patch<BulkUpdateRequestsUpdateResponses, BulkUpdateRequestsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/bulk_update_requests/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Approve Bulk Update Request\n *\n * Must be Admin+.\n */\nexport const bulkUpdateRequests_approve = <ThrowOnError extends boolean = false>(options: Options<BulkUpdateRequestsApproveData, ThrowOnError>) => (options.client ?? client).post<BulkUpdateRequestsApproveResponses, BulkUpdateRequestsApproveErrors, ThrowOnError>({ url: '/bulk_update_requests/{id}/approve.json', ...options });\n\n/**\n * Comments Index\n *\n * For searching comments, group_by=comment must be set.\n */\nexport const comments_index = <ThrowOnError extends boolean = false>(options?: Options<CommentsIndexData, ThrowOnError>) => (options?.client ?? client).get<CommentsIndexResponses, unknown, ThrowOnError>({ url: '/comments.json', ...options });\n\n/**\n * Create Comment\n */\nexport const comments_create = <ThrowOnError extends boolean = false>(options?: Options<CommentsCreateData, ThrowOnError>) => (options?.client ?? client).post<CommentsCreateResponses, CommentsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Comment\n *\n * You must be Admin+.\n *\n */\nexport const comments_destroy = <ThrowOnError extends boolean = false>(options: Options<CommentsDestroyData, ThrowOnError>) => (options.client ?? client).delete<CommentsDestroyResponses, CommentsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}.json',\n ...options\n});\n\n/**\n * Get Comment\n *\n * If the comment is hidden, you must be the creator or Staff+ to see it.\n */\nexport const comments_show = <ThrowOnError extends boolean = false>(options: Options<CommentsShowData, ThrowOnError>) => (options.client ?? client).get<CommentsShowResponses, CommentsShowErrors, ThrowOnError>({ url: '/comments/{id}.json', ...options });\n\n/**\n * Update Comment\n *\n * You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.\n *\n */\nexport const comments_update = <ThrowOnError extends boolean = false>(options: Options<CommentsUpdateData, ThrowOnError>) => (options.client ?? client).patch<CommentsUpdateResponses, CommentsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Hide Comment\n *\n * You must be the creator or Moderator+.\n *\n */\nexport const comments_hide = <ThrowOnError extends boolean = false>(options: Options<CommentsHideData, ThrowOnError>) => (options.client ?? client).post<CommentsHideResponses, CommentsHideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}/hide.json',\n ...options\n});\n\n/**\n * Unhide Comment\n *\n * You must be Moderator+.\n *\n */\nexport const comments_unhide = <ThrowOnError extends boolean = false>(options: Options<CommentsUnhideData, ThrowOnError>) => (options.client ?? client).post<CommentsUnhideResponses, CommentsUnhideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}/unhide.json',\n ...options\n});\n\n/**\n * Mark Comment\n *\n * You must be Moderator+.\n */\nexport const comments_warning = <ThrowOnError extends boolean = false>(options: Options<CommentsWarningData, ThrowOnError>) => (options.client ?? client).post<CommentsWarningResponses, CommentsWarningErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}/warning.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete Comment Vote\n */\nexport const commentVotes_destroy = <ThrowOnError extends boolean = false>(options: Options<CommentVotesDestroyData, ThrowOnError>) => (options.client ?? client).delete<CommentVotesDestroyResponses, CommentVotesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}/votes.json',\n ...options\n});\n\n/**\n * Create Comment Vote\n */\nexport const commentVotes_create = <ThrowOnError extends boolean = false>(options: Options<CommentVotesCreateData, ThrowOnError>) => (options.client ?? client).post<CommentVotesCreateResponses, CommentVotesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comments/{id}/votes.json',\n ...options\n});\n\n/**\n * Comment Votes Index\n *\n * You must be Moderator+.\n */\nexport const commentVotes_index = <ThrowOnError extends boolean = false>(options?: Options<CommentVotesIndexData, ThrowOnError>) => (options?.client ?? client).get<CommentVotesIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comment_votes.json',\n ...options\n});\n\n/**\n * Lock Comment Votes\n *\n * You must be Moderator+. Errors if ids is not provided.\n *\n */\nexport const commentVotes_lock = <ThrowOnError extends boolean = false>(options: Options<CommentVotesLockData, ThrowOnError>) => (options.client ?? client).post<CommentVotesLockResponses, CommentVotesLockErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comment_votes/lock.json',\n ...options\n});\n\n/**\n * Delete Comment Votes\n *\n * You must be Admin+. Errors if ids is not provided.\n *\n */\nexport const commentVotes_delete = <ThrowOnError extends boolean = false>(options: Options<CommentVotesDeleteData, ThrowOnError>) => (options.client ?? client).post<CommentVotesDeleteResponses, CommentVotesDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/comment_votes/delete.json',\n ...options\n});\n\n/**\n * Get DB Exports\n */\nexport const dbExports_index = <ThrowOnError extends boolean = false>(options?: Options<DbExportsIndexData, ThrowOnError>) => (options?.client ?? client).get<DbExportsIndexResponses, unknown, ThrowOnError>({ url: '/db_exports.json', ...options });\n\n/**\n * Get health\n */\nexport const health_index = <ThrowOnError extends boolean = false>(options?: Options<HealthIndexData, ThrowOnError>) => (options?.client ?? client).get<HealthIndexResponses, unknown, ThrowOnError>({ url: '/health', ...options });\n\n/**\n * DMails Index\n */\nexport const dmails_index = <ThrowOnError extends boolean = false>(options?: Options<DmailsIndexData, ThrowOnError>) => (options?.client ?? client).get<DmailsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails.json',\n ...options\n});\n\n/**\n * Delete DMail\n *\n * Deleting simply hides your copy of the dmail.\n */\nexport const dmails_destroy = <ThrowOnError extends boolean = false>(options: Options<DmailsDestroyData, ThrowOnError>) => (options.client ?? client).delete<DmailsDestroyResponses, DmailsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails/{id}.json',\n ...options\n});\n\n/**\n * Get DMail\n *\n * Fetching a dmail will not mark it as read.\n * Unless the dmail is owned:\n * - The current user must be staff and the dmail must be to or from the automod\n * - The current user must be Moderator+ and a ticket must exist for the dmail\n * - The current user must be Admin+ and the dmail must be to or from Admin+\n * - The current user must be Staff and have a share key for the dmail\n *\n */\nexport const dmails_show = <ThrowOnError extends boolean = false>(options: Options<DmailsShowData, ThrowOnError>) => (options.client ?? client).get<DmailsShowResponses, DmailsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails/{id}.json',\n ...options\n});\n\n/**\n * Mark DMail As Read\n */\nexport const dmails_markAsRead = <ThrowOnError extends boolean = false>(options: Options<DmailsMarkAsReadData, ThrowOnError>) => (options.client ?? client).put<DmailsMarkAsReadResponses, DmailsMarkAsReadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails/{id}/mark_as_read.json',\n ...options\n});\n\n/**\n * Mark DMail As Unread\n */\nexport const dmails_markAsUnread = <ThrowOnError extends boolean = false>(options: Options<DmailsMarkAsUnreadData, ThrowOnError>) => (options.client ?? client).put<DmailsMarkAsUnreadResponses, DmailsMarkAsUnreadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails/{id}/mark_as_unread.json',\n ...options\n});\n\n/**\n * Mark All DMails As Read\n */\nexport const dmails_markAllAsRead = <ThrowOnError extends boolean = false>(options?: Options<DmailsMarkAllAsReadData, ThrowOnError>) => (options?.client ?? client).put<DmailsMarkAllAsReadResponses, DmailsMarkAllAsReadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/dmails/mark_all_as_read.json',\n ...options\n});\n\n/**\n * Preview DText\n *\n * Note while this route does not require auth, without auth it requires a CSRF token. For that reason it has been marked as requiring auth.\n */\nexport const dtextPreviews_create = <ThrowOnError extends boolean = false>(options?: Options<DtextPreviewsCreateData, ThrowOnError>) => (options?.client ?? client).post<DtextPreviewsCreateResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }, {\n in: 'query',\n name: 'authenticity_token',\n type: 'apiKey'\n }],\n url: '/dtext_preview.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Edit Histories Index\n *\n * You must be Moderator+.\n */\nexport const editHistories_index = <ThrowOnError extends boolean = false>(options?: Options<EditHistoriesIndexData, ThrowOnError>) => (options?.client ?? client).get<EditHistoriesIndexResponses, EditHistoriesIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/edit_histories.json',\n ...options\n});\n\n/**\n * Get Edit History\n *\n * You must be Moderator+.\n */\nexport const editHistories_show = <ThrowOnError extends boolean = false>(options: Options<EditHistoriesShowData, ThrowOnError>) => (options.client ?? client).get<EditHistoriesShowResponses, EditHistoriesShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/edit_histories/{id}.json',\n ...options\n});\n\n/**\n * Email Blacklists Index\n */\nexport const emailBlacklists_index = <ThrowOnError extends boolean = false>(options?: Options<EmailBlacklistsIndexData, ThrowOnError>) => (options?.client ?? client).get<EmailBlacklistsIndexResponses, unknown, ThrowOnError>({ url: '/email_blacklists.json', ...options });\n\n/**\n * Create Email Blacklist\n *\n * You must be Admin+.\n */\nexport const emailBlacklists_create = <ThrowOnError extends boolean = false>(options?: Options<EmailBlacklistsCreateData, ThrowOnError>) => (options?.client ?? client).post<EmailBlacklistsCreateResponses, EmailBlacklistsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/email_blacklists.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Email Blacklist\n *\n * You must be Admin+.\n */\nexport const emailBlacklists_destroy = <ThrowOnError extends boolean = false>(options: Options<EmailBlacklistsDestroyData, ThrowOnError>) => (options.client ?? client).delete<EmailBlacklistsDestroyResponses, EmailBlacklistsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/email_blacklists/{id}.json',\n ...options\n});\n\n/**\n * Favorites Index\n */\nexport const favorites_index = <ThrowOnError extends boolean = false>(options?: Options<FavoritesIndexData, ThrowOnError>) => (options?.client ?? client).get<FavoritesIndexResponses, FavoritesIndexErrors, ThrowOnError>({ url: '/favorites.json', ...options });\n\n/**\n * Create Favorite\n */\nexport const favorites_create = <ThrowOnError extends boolean = false>(options?: Options<FavoritesCreateData, ThrowOnError>) => (options?.client ?? client).post<FavoritesCreateResponses, FavoritesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/favorites.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Favorite\n */\nexport const favorites_destroy = <ThrowOnError extends boolean = false>(options: Options<FavoritesDestroyData, ThrowOnError>) => (options.client ?? client).delete<FavoritesDestroyResponses, FavoritesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/favorites/{id}.json',\n ...options\n});\n\n/**\n * Forum Posts Index\n */\nexport const forumPosts_index = <ThrowOnError extends boolean = false>(options?: Options<ForumPostsIndexData, ThrowOnError>) => (options?.client ?? client).get<ForumPostsIndexResponses, unknown, ThrowOnError>({ url: '/forum_posts.json', ...options });\n\n/**\n * Create Forum Post\n */\nexport const forumPosts_create = <ThrowOnError extends boolean = false>(options?: Options<ForumPostsCreateData, ThrowOnError>) => (options?.client ?? client).post<ForumPostsCreateResponses, ForumPostsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Forum Post\n *\n * You must be Admin+.\n */\nexport const forumPosts_destroy = <ThrowOnError extends boolean = false>(options: Options<ForumPostsDestroyData, ThrowOnError>) => (options.client ?? client).delete<ForumPostsDestroyResponses, ForumPostsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}.json',\n ...options\n});\n\n/**\n * Get Forum Post\n *\n * If the forum post is hidden, you must be the creator or Moderator+ to see it.\n */\nexport const forumPosts_show = <ThrowOnError extends boolean = false>(options: Options<ForumPostsShowData, ThrowOnError>) => (options.client ?? client).get<ForumPostsShowResponses, ForumPostsShowErrors, ThrowOnError>({ url: '/forum_posts/{id}.json', ...options });\n\n/**\n * Update Forum Post\n *\n * You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.\n */\nexport const forumPosts_update = <ThrowOnError extends boolean = false>(options: Options<ForumPostsUpdateData, ThrowOnError>) => (options.client ?? client).patch<ForumPostsUpdateResponses, ForumPostsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Hide Forum Post\n *\n * You must be the creator or Moderator+.\n */\nexport const forumPosts_hide = <ThrowOnError extends boolean = false>(options: Options<ForumPostsHideData, ThrowOnError>) => (options.client ?? client).post<ForumPostsHideResponses, ForumPostsHideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/hide.json',\n ...options\n});\n\n/**\n * Unhide Forum Post\n *\n * You must be Moderator+.\n */\nexport const forumPosts_unhide = <ThrowOnError extends boolean = false>(options: Options<ForumPostsUnhideData, ThrowOnError>) => (options.client ?? client).post<ForumPostsUnhideResponses, ForumPostsUnhideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/unhide.json',\n ...options\n});\n\n/**\n * Mark Forum Post\n *\n * You must be Moderator+.\n *\n */\nexport const forumPosts_warning = <ThrowOnError extends boolean = false>(options: Options<ForumPostsWarningData, ThrowOnError>) => (options.client ?? client).post<ForumPostsWarningResponses, ForumPostsWarningErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/warning.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete Forum Post Vote\n */\nexport const forumPostVotes_destroy = <ThrowOnError extends boolean = false>(options: Options<ForumPostVotesDestroyData, ThrowOnError>) => (options.client ?? client).delete<ForumPostVotesDestroyResponses, ForumPostVotesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/votes.json',\n ...options\n});\n\n/**\n * Forum Post Votes Index\n */\nexport const forumPostVotes_show = <ThrowOnError extends boolean = false>(options: Options<ForumPostVotesShowData, ThrowOnError>) => (options.client ?? client).get<ForumPostVotesShowResponses, ForumPostVotesShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/votes.json',\n ...options\n});\n\n/**\n * Create Forum Post Vote\n */\nexport const forumPostVotes_create = <ThrowOnError extends boolean = false>(options: Options<ForumPostVotesCreateData, ThrowOnError>) => (options.client ?? client).post<ForumPostVotesCreateResponses, ForumPostVotesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_posts/{id}/votes.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Forum Topics Index\n */\nexport const forumTopics_index = <ThrowOnError extends boolean = false>(options?: Options<ForumTopicsIndexData, ThrowOnError>) => (options?.client ?? client).get<ForumTopicsIndexResponses, unknown, ThrowOnError>({ url: '/forum_topics.json', ...options });\n\n/**\n * Create Forum Topic\n */\nexport const forumTopics_create = <ThrowOnError extends boolean = false>(options?: Options<ForumTopicsCreateData, ThrowOnError>) => (options?.client ?? client).post<ForumTopicsCreateResponses, ForumTopicsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Forum Topic\n *\n * You must be Admin+.\n */\nexport const forumTopics_destroy = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsDestroyData, ThrowOnError>) => (options.client ?? client).delete<ForumTopicsDestroyResponses, ForumTopicsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}.json',\n ...options\n});\n\n/**\n * Get Forum Forum Topic\n *\n * If the forum topic is hidden, you must be the creator or Moderator+ to see it.\n */\nexport const forumTopics_show = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsShowData, ThrowOnError>) => (options.client ?? client).get<ForumTopicsShowResponses, ForumTopicsShowErrors, ThrowOnError>({ url: '/forum_topics/{id}.json', ...options });\n\n/**\n * Update Forum Topic\n */\nexport const forumTopics_update = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsUpdateData, ThrowOnError>) => (options.client ?? client).patch<ForumTopicsUpdateResponses, ForumTopicsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Hide Forum Topic\n *\n * You must be the creator or Moderator+.\n */\nexport const forumTopics_hide = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsHideData, ThrowOnError>) => (options.client ?? client).post<ForumTopicsHideResponses, ForumTopicsHideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}/hide.json',\n ...options\n});\n\n/**\n * Unhide Forum Topic\n *\n * You must be Moderator+.\n */\nexport const forumTopics_unhide = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsUnhideData, ThrowOnError>) => (options.client ?? client).post<ForumTopicsUnhideResponses, ForumTopicsUnhideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}/unhide.json',\n ...options\n});\n\n/**\n * Subscribe To Forum Topic\n */\nexport const forumTopics_subscribe = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsSubscribeData, ThrowOnError>) => (options.client ?? client).post<ForumTopicsSubscribeResponses, ForumTopicsSubscribeErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}/subscribe.json',\n ...options\n});\n\n/**\n * Unsubscribe From Forum Topic\n */\nexport const forumTopics_unsubscribe = <ThrowOnError extends boolean = false>(options: Options<ForumTopicsUnsubscribeData, ThrowOnError>) => (options.client ?? client).post<ForumTopicsUnsubscribeResponses, ForumTopicsUnsubscribeErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/{id}/unsubscribe.json',\n ...options\n});\n\n/**\n * Mark All Forum Topics As Read\n */\nexport const forumTopics_markAllAsRead = <ThrowOnError extends boolean = false>(options?: Options<ForumTopicsMarkAllAsReadData, ThrowOnError>) => (options?.client ?? client).post<ForumTopicsMarkAllAsReadResponses, ForumTopicsMarkAllAsReadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/forum_topics/mark_all_as_read.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get Landing Help Page\n */\nexport const help_index = <ThrowOnError extends boolean = false>(options?: Options<HelpIndexData, ThrowOnError>) => (options?.client ?? client).get<HelpIndexResponses, HelpIndexErrors, ThrowOnError>({ url: '/help.json', ...options });\n\n/**\n * Create Help Page\n *\n * You must be Admin+.\n */\nexport const help_create = <ThrowOnError extends boolean = false>(options?: Options<HelpCreateData, ThrowOnError>) => (options?.client ?? client).post<HelpCreateResponses, HelpCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/help.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Help Pages Index\n */\nexport const help_list = <ThrowOnError extends boolean = false>(options?: Options<HelpListData, ThrowOnError>) => (options?.client ?? client).get<HelpListResponses, unknown, ThrowOnError>({ url: '/help/list.json', ...options });\n\n/**\n * Delete Help Page\n *\n * You must be Admin+.\n */\nexport const help_destroy = <ThrowOnError extends boolean = false>(options: Options<HelpDestroyData, ThrowOnError>) => (options.client ?? client).delete<HelpDestroyResponses, HelpDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/help/{id}.json',\n ...options\n});\n\n/**\n * Get Help Page\n */\nexport const help_show = <ThrowOnError extends boolean = false>(options: Options<HelpShowData, ThrowOnError>) => (options.client ?? client).get<HelpShowResponses, HelpShowErrors, ThrowOnError>({ url: '/help/{id}.json', ...options });\n\n/**\n * Update Help Page\n *\n * You must be Admin+\n */\nexport const help_update = <ThrowOnError extends boolean = false>(options: Options<HelpUpdateData, ThrowOnError>) => (options.client ?? client).patch<HelpUpdateResponses, HelpUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/help/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * IP Bans Index\n */\nexport const ipBans_index = <ThrowOnError extends boolean = false>(options?: Options<IpBansIndexData, ThrowOnError>) => (options?.client ?? client).get<IpBansIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/ip_bans.json',\n ...options\n});\n\n/**\n * Create IP Ban\n *\n * You must be Admin+.\n */\nexport const ipBans_create = <ThrowOnError extends boolean = false>(options?: Options<IpBansCreateData, ThrowOnError>) => (options?.client ?? client).post<IpBansCreateResponses, IpBansCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/ip_bans.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete IP Ban\n *\n * You must be Admin+.\n */\nexport const ipBans_destroy = <ThrowOnError extends boolean = false>(options: Options<IpBansDestroyData, ThrowOnError>) => (options.client ?? client).delete<IpBansDestroyResponses, IpBansDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/ip_bans/{id}.json',\n ...options\n});\n\n/**\n * Query IQDB\n */\nexport const iqdbQueries_show = <ThrowOnError extends boolean = false>(options?: Options<IqdbQueriesShowData, ThrowOnError>) => (options?.client ?? client).get<IqdbQueriesShowResponses, IqdbQueriesShowErrors, ThrowOnError>({ url: '/iqdb_queries.json', ...options });\n\n/**\n * Query IQDB\n */\nexport const iqdbQueries_showPost = <ThrowOnError extends boolean = false>(options?: Options<IqdbQueriesShowPostData, ThrowOnError>) => (options?.client ?? client).post<IqdbQueriesShowPostResponses, IqdbQueriesShowPostErrors, ThrowOnError>({\n url: '/iqdb_queries.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Mascots Index\n */\nexport const mascots_index = <ThrowOnError extends boolean = false>(options?: Options<MascotsIndexData, ThrowOnError>) => (options?.client ?? client).get<MascotsIndexResponses, unknown, ThrowOnError>({ url: '/mascots.json', ...options });\n\n/**\n * Create Mascot\n *\n * You must be Admin+.\n */\nexport const mascots_create = <ThrowOnError extends boolean = false>(options?: Options<MascotsCreateData, ThrowOnError>) => (options?.client ?? client).post<MascotsCreateResponses, MascotsCreateErrors, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/mascots.json',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options?.headers\n }\n});\n\n/**\n * Delete Mascot\n *\n * You must be Admin+.\n */\nexport const mascots_destroy = <ThrowOnError extends boolean = false>(options: Options<MascotsDestroyData, ThrowOnError>) => (options.client ?? client).delete<MascotsDestroyResponses, MascotsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/mascots/{id}.json',\n ...options\n});\n\n/**\n * Update Mascot\n *\n * You must be Admin+.\n */\nexport const mascots_update = <ThrowOnError extends boolean = false>(options: Options<MascotsUpdateData, ThrowOnError>) => (options.client ?? client).patch<MascotsUpdateResponses, MascotsUpdateErrors, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/mascots/{id}.json',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options.headers\n }\n});\n\n/**\n * Mod Actions Index\n *\n * Note that some mod actions are not in use anymore. Their entries exist for historical purposes only.<br>\n * The current legacy actions are as follows:<br>\n * * `created_positive_record`, `created_neutral_record`, `created_negative_record`\n * * `created_flag_reason`, `edited_flag_reason`, `deleted_flag_reason`\n * * `post_move_favorites`, `post_delete`, `post_undelete`, `post_destroy`, `post_rating_lock`, `post_unapprove`\n * * `post_replacement_accept`, `post_replacement_reject`, `post_replacement_delete`\n *\n */\nexport const modActions_index = <ThrowOnError extends boolean = false>(options?: Options<ModActionsIndexData, ThrowOnError>) => (options?.client ?? client).get<ModActionsIndexResponses, unknown, ThrowOnError>({ url: '/mod_actions.json', ...options });\n\n/**\n * Get Mod Action\n */\nexport const modActions_show = <ThrowOnError extends boolean = false>(options: Options<ModActionsShowData, ThrowOnError>) => (options.client ?? client).get<ModActionsShowResponses, ModActionsShowErrors, ThrowOnError>({ url: '/mod_actions/{id}.json', ...options });\n\n/**\n * News Updates Index\n */\nexport const newsUpdates_index = <ThrowOnError extends boolean = false>(options?: Options<NewsUpdatesIndexData, ThrowOnError>) => (options?.client ?? client).get<NewsUpdatesIndexResponses, unknown, ThrowOnError>({ url: '/news_updates.json', ...options });\n\n/**\n * Create News Update\n *\n * You must be Admin+.\n */\nexport const newsUpdates_create = <ThrowOnError extends boolean = false>(options?: Options<NewsUpdatesCreateData, ThrowOnError>) => (options?.client ?? client).post<NewsUpdatesCreateResponses, NewsUpdatesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/news_updates.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete News Update\n *\n * You must be Admin+.\n */\nexport const newsUpdates_destroy = <ThrowOnError extends boolean = false>(options: Options<NewsUpdatesDestroyData, ThrowOnError>) => (options.client ?? client).delete<NewsUpdatesDestroyResponses, NewsUpdatesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/news_updates/{id}.json',\n ...options\n});\n\n/**\n * Update News Update\n *\n * You must be Admin+\n */\nexport const newsUpdates_update = <ThrowOnError extends boolean = false>(options: Options<NewsUpdatesUpdateData, ThrowOnError>) => (options.client ?? client).patch<NewsUpdatesUpdateResponses, NewsUpdatesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/news_updates/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Notes Index\n */\nexport const notes_index = <ThrowOnError extends boolean = false>(options?: Options<NotesIndexData, ThrowOnError>) => (options?.client ?? client).get<NotesIndexResponses, unknown, ThrowOnError>({ url: '/notes.json', ...options });\n\n/**\n * Create Note\n */\nexport const notes_create = <ThrowOnError extends boolean = false>(options?: Options<NotesCreateData, ThrowOnError>) => (options?.client ?? client).post<NotesCreateResponses, NotesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/notes.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Note\n */\nexport const notes_destroy = <ThrowOnError extends boolean = false>(options: Options<NotesDestroyData, ThrowOnError>) => (options.client ?? client).delete<NotesDestroyResponses, NotesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/notes/{id}.json',\n ...options\n});\n\n/**\n * Get Note\n */\nexport const notes_show = <ThrowOnError extends boolean = false>(options: Options<NotesShowData, ThrowOnError>) => (options.client ?? client).get<NotesShowResponses, NotesShowErrors, ThrowOnError>({ url: '/notes/{id}.json', ...options });\n\n/**\n * Update Note\n */\nexport const notes_update = <ThrowOnError extends boolean = false>(options: Options<NotesUpdateData, ThrowOnError>) => (options.client ?? client).patch<NotesUpdateResponses, NotesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/notes/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revert Note\n */\nexport const notes_revert = <ThrowOnError extends boolean = false>(options: Options<NotesRevertData, ThrowOnError>) => (options.client ?? client).put<NotesRevertResponses, NotesRevertErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/notes/{id}/revert.json',\n ...options\n});\n\n/**\n * Note Versions Index\n */\nexport const noteVersions_index = <ThrowOnError extends boolean = false>(options?: Options<NoteVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<NoteVersionsIndexResponses, unknown, ThrowOnError>({ url: '/note_versions.json', ...options });\n\n/**\n * Pools Index\n */\nexport const pools_index = <ThrowOnError extends boolean = false>(options?: Options<PoolsIndexData, ThrowOnError>) => (options?.client ?? client).get<PoolsIndexResponses, unknown, ThrowOnError>({ url: '/pools.json', ...options });\n\n/**\n * Create Pool\n */\nexport const pools_create = <ThrowOnError extends boolean = false>(options?: Options<PoolsCreateData, ThrowOnError>) => (options?.client ?? client).post<PoolsCreateResponses, PoolsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pools.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Pool\n *\n * You must be Staff+.\n */\nexport const pools_destroy = <ThrowOnError extends boolean = false>(options: Options<PoolsDestroyData, ThrowOnError>) => (options.client ?? client).delete<PoolsDestroyResponses, PoolsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pools/{id}.json',\n ...options\n});\n\n/**\n * Get Pool\n */\nexport const pools_show = <ThrowOnError extends boolean = false>(options: Options<PoolsShowData, ThrowOnError>) => (options.client ?? client).get<PoolsShowResponses, PoolsShowErrors, ThrowOnError>({ url: '/pools/{id}.json', ...options });\n\n/**\n * Update Pool\n */\nexport const pools_update = <ThrowOnError extends boolean = false>(options: Options<PoolsUpdateData, ThrowOnError>) => (options.client ?? client).patch<PoolsUpdateResponses, PoolsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pools/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revert Pool\n */\nexport const pools_revert = <ThrowOnError extends boolean = false>(options: Options<PoolsRevertData, ThrowOnError>) => (options.client ?? client).put<PoolsRevertResponses, PoolsRevertErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pools/{id}/revert.json',\n ...options\n});\n\n/**\n * Remove Post From Pool\n */\nexport const poolElements_destroy = <ThrowOnError extends boolean = false>(options?: Options<PoolElementsDestroyData, ThrowOnError>) => (options?.client ?? client).delete<PoolElementsDestroyResponses, PoolElementsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pool_element.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Add Post To Pool\n */\nexport const poolElements_create = <ThrowOnError extends boolean = false>(options?: Options<PoolElementsCreateData, ThrowOnError>) => (options?.client ?? client).post<PoolElementsCreateResponses, PoolElementsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pool_element.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get Recent Pools\n */\nexport const poolElements_recent = <ThrowOnError extends boolean = false>(options?: Options<PoolElementsRecentData, ThrowOnError>) => (options?.client ?? client).get<PoolElementsRecentResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/pool_element/recent.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Pool Versions Index\n */\nexport const poolVersions_index = <ThrowOnError extends boolean = false>(options?: Options<PoolVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<PoolVersionsIndexResponses, unknown, ThrowOnError>({ url: '/pool_versions.json', ...options });\n\n/**\n * Popular Index\n */\nexport const popular_index = <ThrowOnError extends boolean = false>(options?: Options<PopularIndexData, ThrowOnError>) => (options?.client ?? client).get<PopularIndexResponses, PopularIndexErrors, ThrowOnError>({ url: '/popular.json', ...options });\n\n/**\n * Posts Index\n */\nexport const posts_index = <ThrowOnError extends boolean = false>(options?: Options<PostsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostsIndexResponses, unknown, ThrowOnError>({ url: '/posts.json', ...options });\n\n/**\n * Get Random Post\n */\nexport const posts_random = <ThrowOnError extends boolean = false>(options?: Options<PostsRandomData, ThrowOnError>) => (options?.client ?? client).get<PostsRandomResponses, PostsRandomErrors, ThrowOnError>({ url: '/posts/random.json', ...options });\n\n/**\n * Get Post\n */\nexport const posts_show = <ThrowOnError extends boolean = false>(options: Options<PostsShowData, ThrowOnError>) => (options.client ?? client).get<PostsShowResponses, PostsShowErrors, ThrowOnError>({ url: '/posts/{id}.json', ...options });\n\n/**\n * Update Post\n *\n * Most errors are silently swallowed.\n */\nexport const posts_update = <ThrowOnError extends boolean = false>(options: Options<PostsUpdateData, ThrowOnError>) => (options.client ?? client).patch<PostsUpdateResponses, PostsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update Post IQDB\n *\n * You must be Admin+.\n */\nexport const posts_updateIqdb = <ThrowOnError extends boolean = false>(options: Options<PostsUpdateIqdbData, ThrowOnError>) => (options.client ?? client).get<PostsUpdateIqdbResponses, PostsUpdateIqdbErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/update_iqdb.json',\n ...options\n});\n\n/**\n * Mark Post As Translated\n *\n * Will error if no body is provided.\n */\nexport const posts_markAsTranslated = <ThrowOnError extends boolean = false>(options: Options<PostsMarkAsTranslatedData, ThrowOnError>) => (options.client ?? client).put<PostsMarkAsTranslatedResponses, PostsMarkAsTranslatedErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/mark_as_translated.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Copy Notes To Post\n */\nexport const posts_copyNotes = <ThrowOnError extends boolean = false>(options: Options<PostsCopyNotesData, ThrowOnError>) => (options.client ?? client).put<PostsCopyNotesResponses, PostsCopyNotesErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/copy_notes.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revert Post\n */\nexport const posts_revert = <ThrowOnError extends boolean = false>(options: Options<PostsRevertData, ThrowOnError>) => (options.client ?? client).put<PostsRevertResponses, PostsRevertErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/revert.json',\n ...options\n});\n\n/**\n * Get Post In Sequence\n */\nexport const posts_showSeq = <ThrowOnError extends boolean = false>(options: Options<PostsShowSeqData, ThrowOnError>) => (options.client ?? client).get<PostsShowSeqResponses, PostsShowSeqErrors, ThrowOnError>({ url: '/posts/{id}/show_seq.json', ...options });\n\n/**\n * Unflag Post\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const postFlags_destroy = <ThrowOnError extends boolean = false>(options: Options<PostFlagsDestroyData, ThrowOnError>) => (options.client ?? client).delete<PostFlagsDestroyResponses, PostFlagsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/flag.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Post Favorites Index\n *\n * You must be the user or Moderator+ to see users that have their favorites hidden.\n */\nexport const postFavorites_index = <ThrowOnError extends boolean = false>(options: Options<PostFavoritesIndexData, ThrowOnError>) => (options.client ?? client).get<PostFavoritesIndexResponses, PostFavoritesIndexErrors, ThrowOnError>({ url: '/posts/{id}/favorites.json', ...options });\n\n/**\n * Delete Post Vote\n */\nexport const postVotes_destroy = <ThrowOnError extends boolean = false>(options: Options<PostVotesDestroyData, ThrowOnError>) => (options.client ?? client).delete<PostVotesDestroyResponses, PostVotesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/votes.json',\n ...options\n});\n\n/**\n * Create Post Vote\n */\nexport const postVotes_create = <ThrowOnError extends boolean = false>(options: Options<PostVotesCreateData, ThrowOnError>) => (options.client ?? client).post<PostVotesCreateResponses, PostVotesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/posts/{id}/votes.json',\n ...options\n});\n\n/**\n * Get Recommended Posts For Artist\n */\nexport const postRecommendations_artist = <ThrowOnError extends boolean = false>(options: Options<PostRecommendationsArtistData, ThrowOnError>) => (options.client ?? client).get<PostRecommendationsArtistResponses, PostRecommendationsArtistErrors, ThrowOnError>({ url: '/posts/{id}/similar/artist.json', ...options });\n\n/**\n * Get Recommended Posts For Tags\n */\nexport const postRecommendations_tags = <ThrowOnError extends boolean = false>(options: Options<PostRecommendationsTagsData, ThrowOnError>) => (options.client ?? client).get<PostRecommendationsTagsResponses, PostRecommendationsTagsErrors, ThrowOnError>({ url: '/posts/{id}/similar/tags.json', ...options });\n\n/**\n * Post Sets Index\n */\nexport const postSets_index = <ThrowOnError extends boolean = false>(options?: Options<PostSetsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostSetsIndexResponses, unknown, ThrowOnError>({ url: '/post_sets.json', ...options });\n\n/**\n * Create Post Set\n */\nexport const postSets_create = <ThrowOnError extends boolean = false>(options?: Options<PostSetsCreateData, ThrowOnError>) => (options?.client ?? client).post<PostSetsCreateResponses, PostSetsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Post Set\n *\n * You must be the owner of the set, or Admin+.\n */\nexport const postSets_destroy = <ThrowOnError extends boolean = false>(options: Options<PostSetsDestroyData, ThrowOnError>) => (options.client ?? client).delete<PostSetsDestroyResponses, PostSetsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/{id}.json',\n ...options\n});\n\n/**\n * Get Post Set\n *\n * You must be Moderator+ if the set is not public.\n */\nexport const postSets_show = <ThrowOnError extends boolean = false>(options: Options<PostSetsShowData, ThrowOnError>) => (options.client ?? client).get<PostSetsShowResponses, PostSetsShowErrors, ThrowOnError>({ url: '/post_sets/{id}.json', ...options });\n\n/**\n * Update Post Set\n *\n * You must be the owner of the set, or Admin+.\n */\nexport const postSets_update = <ThrowOnError extends boolean = false>(options: Options<PostSetsUpdateData, ThrowOnError>) => (options.client ?? client).patch<PostSetsUpdateResponses, PostSetsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update Post Set Posts\n *\n * You must be the owner of the set, a maintainer (if public), or Admin+.\n */\nexport const postSets_updatePosts = <ThrowOnError extends boolean = false>(options: Options<PostSetsUpdatePostsData, ThrowOnError>) => (options.client ?? client).post<PostSetsUpdatePostsResponses, PostSetsUpdatePostsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/{id}/update_posts.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add Posts To Post Set\n *\n * You must be the owner of the set, a maintainer (if public), or Admin+.\n */\nexport const postSets_addPosts = <ThrowOnError extends boolean = false>(options: Options<PostSetsAddPostsData, ThrowOnError>) => (options.client ?? client).post<PostSetsAddPostsResponses, PostSetsAddPostsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/{id}/add_posts.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove Posts From Post Set\n *\n * You must be the owner of the set, a maintainer (if public), or Admin+.\n */\nexport const postSets_removePosts = <ThrowOnError extends boolean = false>(options: Options<PostSetsRemovePostsData, ThrowOnError>) => (options.client ?? client).post<PostSetsRemovePostsResponses, PostSetsRemovePostsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/{id}/remove_posts.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Post Sets For Select\n *\n * You must be the owner of the set, a maintainer (if public), or Admin+.\n */\nexport const postSets_forSelect = <ThrowOnError extends boolean = false>(options?: Options<PostSetsForSelectData, ThrowOnError>) => (options?.client ?? client).get<PostSetsForSelectResponses, PostSetsForSelectErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_sets/for_select.json',\n ...options\n});\n\n/**\n * Post Approvals Index\n */\nexport const postApprovals_index = <ThrowOnError extends boolean = false>(options?: Options<PostApprovalsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostApprovalsIndexResponses, unknown, ThrowOnError>({ url: '/post_approvals.json', ...options });\n\n/**\n * Post Events Index\n */\nexport const postEvents_index = <ThrowOnError extends boolean = false>(options?: Options<PostEventsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostEventsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_events.json',\n ...options\n});\n\n/**\n * Post Flags Index\n */\nexport const postFlags_index = <ThrowOnError extends boolean = false>(options?: Options<PostFlagsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostFlagsIndexResponses, unknown, ThrowOnError>({ url: '/post_flags.json', ...options });\n\n/**\n * Create Post Flag\n *\n * Will error if post_id is not provided.\n */\nexport const postFlags_create = <ThrowOnError extends boolean = false>(options?: Options<PostFlagsCreateData, ThrowOnError>) => (options?.client ?? client).post<PostFlagsCreateResponses, PostFlagsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_flags.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get Post Flag\n */\nexport const postFlags_show = <ThrowOnError extends boolean = false>(options: Options<PostFlagsShowData, ThrowOnError>) => (options.client ?? client).get<PostFlagsShowResponses, PostFlagsShowErrors, ThrowOnError>({ url: '/post_flags/{id}.json', ...options });\n\n/**\n * Clear Post Flag Note\n *\n * You must be Janitor+\n */\nexport const postFlags_clearNote = <ThrowOnError extends boolean = false>(options: Options<PostFlagsClearNoteData, ThrowOnError>) => (options.client ?? client).post<PostFlagsClearNoteResponses, PostFlagsClearNoteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_flags/{id}/clear_note.json',\n ...options\n});\n\n/**\n * Post Replacements Index\n *\n * Rejected replacements can only be seen by staff.\n */\nexport const postReplacements_index = <ThrowOnError extends boolean = false>(options?: Options<PostReplacementsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostReplacementsIndexResponses, unknown, ThrowOnError>({ url: '/post_replacements.json', ...options });\n\n/**\n * Create Post Replacement\n */\nexport const postReplacements_create = <ThrowOnError extends boolean = false>(options?: Options<PostReplacementsCreateData, ThrowOnError>) => (options?.client ?? client).post<PostReplacementsCreateResponses, PostReplacementsCreateErrors, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements.json',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options?.headers\n }\n});\n\n/**\n * Delete Post Replacement\n *\n * You must be Admin+.\n */\nexport const postReplacements_destroy = <ThrowOnError extends boolean = false>(options: Options<PostReplacementsDestroyData, ThrowOnError>) => (options.client ?? client).delete<PostReplacementsDestroyResponses, PostReplacementsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements/{id}.json',\n ...options\n});\n\n/**\n * Approve Post Replacement\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const postReplacements_approve = <ThrowOnError extends boolean = false>(options: Options<PostReplacementsApproveData, ThrowOnError>) => (options.client ?? client).put<PostReplacementsApproveResponses, PostReplacementsApproveErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements/{id}/approve.json',\n ...options\n});\n\n/**\n * Reject Post Replacement\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const postReplacements_reject = <ThrowOnError extends boolean = false>(options: Options<PostReplacementsRejectData, ThrowOnError>) => (options.client ?? client).put<PostReplacementsRejectResponses, PostReplacementsRejectErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements/{id}/reject.json',\n ...options\n});\n\n/**\n * Promote Post Replacement\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const postReplacements_promote = <ThrowOnError extends boolean = false>(options: Options<PostReplacementsPromoteData, ThrowOnError>) => (options.client ?? client).post<PostReplacementsPromoteResponses, PostReplacementsPromoteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements/{id}/promote.json',\n ...options\n});\n\n/**\n * Toggle Post Replacement Penalty\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const postReplacements_togglePenalize = <ThrowOnError extends boolean = false>(options: Options<PostReplacementsTogglePenalizeData, ThrowOnError>) => (options.client ?? client).put<PostReplacementsTogglePenalizeResponses, PostReplacementsTogglePenalizeErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_replacements/{id}/toggle_penalize.json',\n ...options\n});\n\n/**\n * Post Versions Index\n */\nexport const postVersions_index = <ThrowOnError extends boolean = false>(options?: Options<PostVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<PostVersionsIndexResponses, unknown, ThrowOnError>({ url: '/post_versions.json', ...options });\n\n/**\n * Hide Post Version\n *\n * You must be Admin+.\n */\nexport const postVersions_hide = <ThrowOnError extends boolean = false>(options: Options<PostVersionsHideData, ThrowOnError>) => (options.client ?? client).put<unknown, PostVersionsHideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_versions/{id}/hide.json',\n ...options\n});\n\n/**\n * Unhide Post Version\n *\n * You must be Admin+.\n */\nexport const postVersions_unhide = <ThrowOnError extends boolean = false>(options: Options<PostVersionsUnhideData, ThrowOnError>) => (options.client ?? client).put<unknown, PostVersionsUnhideErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_versions/{id}/unhide.json',\n ...options\n});\n\n/**\n * Undo Post Version\n */\nexport const postVersions_undo = <ThrowOnError extends boolean = false>(options: Options<PostVersionsUndoData, ThrowOnError>) => (options.client ?? client).put<PostVersionsUndoResponses, PostVersionsUndoErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_versions/{id}/undo.json',\n ...options\n});\n\n/**\n * Post Votes Index\n *\n * You must be Moderator+.\n */\nexport const postVotes_index = <ThrowOnError extends boolean = false>(options?: Options<PostVotesIndexData, ThrowOnError>) => (options?.client ?? client).get<PostVotesIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_votes.json',\n ...options\n});\n\n/**\n * Lock Post Votes\n *\n * You must be Moderator+. Errors if ids is not provided.\n */\nexport const postVotes_lock = <ThrowOnError extends boolean = false>(options: Options<PostVotesLockData, ThrowOnError>) => (options.client ?? client).post<PostVotesLockResponses, PostVotesLockErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_votes/lock.json',\n ...options\n});\n\n/**\n * Delete Post Votes\n *\n * You must be Admin+. Errors if ids is not provided.\n */\nexport const postVotes_delete = <ThrowOnError extends boolean = false>(options: Options<PostVotesDeleteData, ThrowOnError>) => (options.client ?? client).post<PostVotesDeleteResponses, PostVotesDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/post_votes/delete.json',\n ...options\n});\n\n/**\n * Tags Index\n */\nexport const tags_index = <ThrowOnError extends boolean = false>(options?: Options<TagsIndexData, ThrowOnError>) => (options?.client ?? client).get<TagsIndexResponses, unknown, ThrowOnError>({ url: '/tags.json', ...options });\n\n/**\n * Delete Tag\n *\n * You must have the bd staff user flag.\n */\nexport const tags_destroy = <ThrowOnError extends boolean = false>(options: Options<TagsDestroyData, ThrowOnError>) => (options.client ?? client).delete<TagsDestroyResponses, TagsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tags/{id}.json',\n ...options\n});\n\n/**\n * Get Tag\n */\nexport const tags_show = <ThrowOnError extends boolean = false>(options: Options<TagsShowData, ThrowOnError>) => (options.client ?? client).get<TagsShowResponses, TagsShowErrors, ThrowOnError>({ url: '/tags/{id}.json', ...options });\n\n/**\n * Update Tag\n *\n * Must be Admin+ if the tag is locked or post count is >100.\n */\nexport const tags_update = <ThrowOnError extends boolean = false>(options: Options<TagsUpdateData, ThrowOnError>) => (options.client ?? client).patch<TagsUpdateResponses, TagsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tags/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get Tag Correction\n */\nexport const tagCorrections_show = <ThrowOnError extends boolean = false>(options: Options<TagCorrectionsShowData, ThrowOnError>) => (options.client ?? client).get<TagCorrectionsShowResponses, TagCorrectionsShowErrors, ThrowOnError>({ url: '/tags/{id}/correction.json', ...options });\n\n/**\n * Correct Tag\n *\n * You must be Staff+. `commit=Fix` must be set.\n */\nexport const tagCorrections_create = <ThrowOnError extends boolean = false>(options: Options<TagCorrectionsCreateData, ThrowOnError>) => (options.client ?? client).post<unknown, TagCorrectionsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tags/{id}/correction.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Preview Tags\n */\nexport const tags_preview = <ThrowOnError extends boolean = false>(options?: Options<TagsPreviewData, ThrowOnError>) => (options?.client ?? client).post<TagsPreviewResponses, TagsPreviewErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tags/preview.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Tag Type Versions Index\n */\nexport const tagTypeVersions_index = <ThrowOnError extends boolean = false>(options?: Options<TagTypeVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<TagTypeVersionsIndexResponses, unknown, ThrowOnError>({ url: '/tag_type_versions.json', ...options });\n\n/**\n * Tag Aliases Index\n */\nexport const tagAliases_index = <ThrowOnError extends boolean = false>(options?: Options<TagAliasesIndexData, ThrowOnError>) => (options?.client ?? client).get<TagAliasesIndexResponses, unknown, ThrowOnError>({ url: '/tag_aliases.json', ...options });\n\n/**\n * Reject Tag Alias\n *\n * You must be the creator of the request (if pending), or Admin+.\n */\nexport const tagAliases_destroy = <ThrowOnError extends boolean = false>(options: Options<TagAliasesDestroyData, ThrowOnError>) => (options.client ?? client).delete<TagAliasesDestroyResponses, TagAliasesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_aliases/{id}.json',\n ...options\n});\n\n/**\n * Get Tag Alias\n */\nexport const tagAliases_show = <ThrowOnError extends boolean = false>(options: Options<TagAliasesShowData, ThrowOnError>) => (options.client ?? client).get<TagAliasesShowResponses, TagAliasesShowErrors, ThrowOnError>({ url: '/tag_aliases/{id}.json', ...options });\n\n/**\n * Update Tag Alias\n *\n * You must be Admin+.\n */\nexport const tagAliases_update = <ThrowOnError extends boolean = false>(options: Options<TagAliasesUpdateData, ThrowOnError>) => (options.client ?? client).patch<TagAliasesUpdateResponses, TagAliasesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_aliases/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Approve Tag Alias\n *\n * You must be Admin+.\n */\nexport const tagAliases_approve = <ThrowOnError extends boolean = false>(options: Options<TagAliasesApproveData, ThrowOnError>) => (options.client ?? client).post<TagAliasesApproveResponses, TagAliasesApproveErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_aliases/{id}/approve.json',\n ...options\n});\n\n/**\n * Create Tag Alias\n *\n * Errors will result in a 406 with no information.\n */\nexport const tagAliasRequests_create = <ThrowOnError extends boolean = false>(options?: Options<TagAliasRequestsCreateData, ThrowOnError>) => (options?.client ?? client).post<unknown, TagAliasRequestsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_alias_requests.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Tag Implications Index\n */\nexport const tagImplications_index = <ThrowOnError extends boolean = false>(options?: Options<TagImplicationsIndexData, ThrowOnError>) => (options?.client ?? client).get<TagImplicationsIndexResponses, unknown, ThrowOnError>({ url: '/tag_implications.json', ...options });\n\n/**\n * Reject Tag Implication\n *\n * You must be the creator of the request (if pending), or Admin+.\n */\nexport const tagImplications_destroy = <ThrowOnError extends boolean = false>(options: Options<TagImplicationsDestroyData, ThrowOnError>) => (options.client ?? client).delete<TagImplicationsDestroyResponses, TagImplicationsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_implications/{id}.json',\n ...options\n});\n\n/**\n * Get Tag Implication\n */\nexport const tagImplications_show = <ThrowOnError extends boolean = false>(options: Options<TagImplicationsShowData, ThrowOnError>) => (options.client ?? client).get<TagImplicationsShowResponses, TagImplicationsShowErrors, ThrowOnError>({ url: '/tag_implications/{id}.json', ...options });\n\n/**\n * Update Tag Implication\n *\n * You must be Admin+.\n */\nexport const tagImplications_update = <ThrowOnError extends boolean = false>(options: Options<TagImplicationsUpdateData, ThrowOnError>) => (options.client ?? client).patch<TagImplicationsUpdateResponses, TagImplicationsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_implications/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Approve Tag Implication\n *\n * You must be Admin+.\n */\nexport const tagImplications_approve = <ThrowOnError extends boolean = false>(options: Options<TagImplicationsApproveData, ThrowOnError>) => (options.client ?? client).post<TagImplicationsApproveResponses, TagImplicationsApproveErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_implications/{id}/approve.json',\n ...options\n});\n\n/**\n * Create Tag Implication\n *\n * Errors will result in a 406 with no information.\n */\nexport const tagImplicationRequests_create = <ThrowOnError extends boolean = false>(options?: Options<TagImplicationRequestsCreateData, ThrowOnError>) => (options?.client ?? client).post<unknown, TagImplicationRequestsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tag_implication_requests.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * List Bulk Related Tags\n */\nexport const relatedTags_bulk = <ThrowOnError extends boolean = false>(options?: Options<RelatedTagsBulkData, ThrowOnError>) => (options?.client ?? client).post<RelatedTagsBulkResponses, RelatedTagsBulkErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/related_tag/bulk.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Search Trends Index\n */\nexport const searchTrends_index = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendsIndexData, ThrowOnError>) => (options?.client ?? client).get<SearchTrendsIndexResponses, unknown, ThrowOnError>({ url: '/search_trends.json', ...options });\n\n/**\n * List Rising Search Trends\n */\nexport const searchTrends_rising = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendsRisingData, ThrowOnError>) => (options?.client ?? client).get<SearchTrendsRisingResponses, unknown, ThrowOnError>({ url: '/search_trends/rising.json', ...options });\n\n/**\n * Clear Search Trends Cache\n *\n * You must be Admin+.\n */\nexport const searchTrends_clearCache = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendsClearCacheData, ThrowOnError>) => (options?.client ?? client).post<SearchTrendsClearCacheResponses, SearchTrendsClearCacheErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trends/clear_cache.json',\n ...options\n});\n\n/**\n * Update Search Trends Settings\n *\n * You must be Admin+.\n */\nexport const searchTrends_updateSettings = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendsUpdateSettingsData, ThrowOnError>) => (options?.client ?? client).post<SearchTrendsUpdateSettingsResponses, SearchTrendsUpdateSettingsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trends/update_settings.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Purge Search Trends\n *\n * You must be Admin+.\n */\nexport const searchTrends_purge = <ThrowOnError extends boolean = false>(options: Options<SearchTrendsPurgeData, ThrowOnError>) => (options.client ?? client).delete<SearchTrendsPurgeResponses, SearchTrendsPurgeErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trends/{id}/purge.json',\n ...options\n});\n\n/**\n * Search Trend Blacklists Index\n *\n * You must be Admin+.\n */\nexport const searchTrendBlacklists_index = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendBlacklistsIndexData, ThrowOnError>) => (options?.client ?? client).get<SearchTrendBlacklistsIndexResponses, SearchTrendBlacklistsIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trend_blacklists.json',\n ...options\n});\n\n/**\n * Create Search Trend Blacklist\n *\n * You must be Admin+.\n */\nexport const searchTrendBlacklists_create = <ThrowOnError extends boolean = false>(options?: Options<SearchTrendBlacklistsCreateData, ThrowOnError>) => (options?.client ?? client).post<SearchTrendBlacklistsCreateResponses, SearchTrendBlacklistsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trend_blacklists.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Search Trend Blacklist\n *\n * You must be Admin+.\n */\nexport const searchTrendBlacklists_destroy = <ThrowOnError extends boolean = false>(options: Options<SearchTrendBlacklistsDestroyData, ThrowOnError>) => (options.client ?? client).delete<SearchTrendBlacklistsDestroyResponses, SearchTrendBlacklistsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/search_trend_blacklists/{id}.json',\n ...options\n});\n\n/**\n * Login\n */\nexport const sessions_create = <ThrowOnError extends boolean = false>(options?: Options<SessionsCreateData, ThrowOnError>) => (options?.client ?? client).post<unknown, SessionsCreateErrors, ThrowOnError>({\n ...urlSearchParamsBodySerializer,\n security: [{\n in: 'query',\n name: 'authenticity_token',\n type: 'apiKey'\n }],\n url: '/session.json',\n ...options,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...options?.headers\n }\n});\n\n/**\n * Staff Notes Index\n */\nexport const staffNotes_index = <ThrowOnError extends boolean = false>(options?: Options<StaffNotesIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffNotesIndexResponses, unknown, ThrowOnError>({ url: '/staff_notes.json', ...options });\n\n/**\n * Create Staff Note\n */\nexport const staffNotes_create = <ThrowOnError extends boolean = false>(options?: Options<StaffNotesCreateData, ThrowOnError>) => (options?.client ?? client).post<StaffNotesCreateResponses, StaffNotesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff_notes.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get Staff Note\n */\nexport const staffNotes_show = <ThrowOnError extends boolean = false>(options: Options<StaffNotesShowData, ThrowOnError>) => (options.client ?? client).get<StaffNotesShowResponses, StaffNotesShowErrors, ThrowOnError>({ url: '/staff_notes/{id}.json', ...options });\n\n/**\n * Update Staff Note\n *\n * You must be the creator or Admin+.\n */\nexport const staffNotes_update = <ThrowOnError extends boolean = false>(options: Options<StaffNotesUpdateData, ThrowOnError>) => (options.client ?? client).patch<StaffNotesUpdateResponses, StaffNotesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff_notes/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete Staff Note\n *\n * You must be the creator or Admin+.\n *\n */\nexport const staffNotes_delete = <ThrowOnError extends boolean = false>(options: Options<StaffNotesDeleteData, ThrowOnError>) => (options.client ?? client).put<StaffNotesDeleteResponses, StaffNotesDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff_notes/{id}/delete.json',\n ...options\n});\n\n/**\n * Undelete Staff Note\n *\n * You must be the creator or Admin+.\n *\n */\nexport const staffNotes_undelete = <ThrowOnError extends boolean = false>(options: Options<StaffNotesUndeleteData, ThrowOnError>) => (options.client ?? client).put<StaffNotesUndeleteResponses, StaffNotesUndeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff_notes/{id}/undelete.json',\n ...options\n});\n\n/**\n * Takedowns Index\n */\nexport const takedowns_index = <ThrowOnError extends boolean = false>(options?: Options<TakedownsIndexData, ThrowOnError>) => (options?.client ?? client).get<TakedownsIndexResponses, unknown, ThrowOnError>({ url: '/takedowns.json', ...options });\n\n/**\n * Create Takedown\n */\nexport const takedowns_create = <ThrowOnError extends boolean = false>(options?: Options<TakedownsCreateData, ThrowOnError>) => (options?.client ?? client).post<TakedownsCreateResponses, TakedownsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Takedown\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_destroy = <ThrowOnError extends boolean = false>(options: Options<TakedownsDestroyData, ThrowOnError>) => (options.client ?? client).delete<TakedownsDestroyResponses, TakedownsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}.json',\n ...options\n});\n\n/**\n * Get Takedown\n */\nexport const takedowns_show = <ThrowOnError extends boolean = false>(options: Options<TakedownsShowData, ThrowOnError>) => (options.client ?? client).get<TakedownsShowResponses, TakedownsShowErrors, ThrowOnError>({ url: '/takedowns/{id}.json', ...options });\n\n/**\n * Update Takedown\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_update = <ThrowOnError extends boolean = false>(options: Options<TakedownsUpdateData, ThrowOnError>) => (options.client ?? client).patch<TakedownsUpdateResponses, TakedownsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add Posts To Takedown By IDs\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_addByIds = <ThrowOnError extends boolean = false>(options: Options<TakedownsAddByIdsData, ThrowOnError>) => (options.client ?? client).post<TakedownsAddByIdsResponses, TakedownsAddByIdsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}/add_by_ids.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add Posts To Takedown By Tags\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_addByTags = <ThrowOnError extends boolean = false>(options: Options<TakedownsAddByTagsData, ThrowOnError>) => (options.client ?? client).post<TakedownsAddByTagsResponses, TakedownsAddByTagsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}/add_by_tags.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Count Matching Posts\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_countMatchingPosts = <ThrowOnError extends boolean = false>(options: Options<TakedownsCountMatchingPostsData, ThrowOnError>) => (options.client ?? client).post<TakedownsCountMatchingPostsResponses, TakedownsCountMatchingPostsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}/count_matching_posts.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove Posts From Takedown By IDs\n *\n * You must have the bd staff user flag.\n */\nexport const takedowns_removeByIds = <ThrowOnError extends boolean = false>(options: Options<TakedownsRemoveByIdsData, ThrowOnError>) => (options.client ?? client).post<TakedownsRemoveByIdsResponses, TakedownsRemoveByIdsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/takedowns/{id}/remove_by_ids.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Tickets Index\n *\n * You must be Staff+ to see tickets you did not create.\n */\nexport const tickets_index = <ThrowOnError extends boolean = false>(options?: Options<TicketsIndexData, ThrowOnError>) => (options?.client ?? client).get<TicketsIndexResponses, TicketsIndexErrors, ThrowOnError>({ url: '/tickets.json', ...options });\n\n/**\n * Get Ticket\n *\n * You must be Staff+ to see tickets you did not create.\n */\nexport const tickets_show = <ThrowOnError extends boolean = false>(options: Options<TicketsShowData, ThrowOnError>) => (options.client ?? client).get<TicketsShowResponses, TicketsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tickets/{id}.json',\n ...options\n});\n\n/**\n * Update Ticket\n *\n * You must be Moderator+.\n */\nexport const tickets_update = <ThrowOnError extends boolean = false>(options: Options<TicketsUpdateData, ThrowOnError>) => (options.client ?? client).patch<TicketsUpdateResponses, TicketsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tickets/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Claim Ticket\n *\n * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n */\nexport const tickets_claim = <ThrowOnError extends boolean = false>(options: Options<TicketsClaimData, ThrowOnError>) => (options.client ?? client).post<TicketsClaimResponses, TicketsClaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tickets/{id}/claim.json',\n ...options\n});\n\n/**\n * Unclaim Ticket\n *\n * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n */\nexport const tickets_unclaim = <ThrowOnError extends boolean = false>(options: Options<TicketsUnclaimData, ThrowOnError>) => (options.client ?? client).post<TicketsUnclaimResponses, TicketsUnclaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/tickets/{id}/unclaim.json',\n ...options\n});\n\n/**\n * Uploads Index\n */\nexport const uploads_index = <ThrowOnError extends boolean = false>(options?: Options<UploadsIndexData, ThrowOnError>) => (options?.client ?? client).get<UploadsIndexResponses, unknown, ThrowOnError>({ url: '/uploads.json', ...options });\n\n/**\n * Upload Post\n */\nexport const uploads_create = <ThrowOnError extends boolean = false>(options?: Options<UploadsCreateData, ThrowOnError>) => (options?.client ?? client).post<UploadsCreateResponses, UploadsCreateErrors, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/uploads.json',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options?.headers\n }\n});\n\n/**\n * Get Upload\n *\n * You must be Staff+.\n */\nexport const uploads_show = <ThrowOnError extends boolean = false>(options: Options<UploadsShowData, ThrowOnError>) => (options.client ?? client).get<UploadsShowResponses, UploadsShowErrors, ThrowOnError>({ url: '/uploads/{id}.json', ...options });\n\n/**\n * Upload Whitelists Index\n */\nexport const uploadWhitelists_index = <ThrowOnError extends boolean = false>(options?: Options<UploadWhitelistsIndexData, ThrowOnError>) => (options?.client ?? client).get<UploadWhitelistsIndexResponses, unknown, ThrowOnError>({ url: '/upload_whitelists.json', ...options });\n\n/**\n * Create Upload Whitelist\n *\n * You must be Admin+.\n */\nexport const uploadWhitelists_create = <ThrowOnError extends boolean = false>(options?: Options<UploadWhitelistsCreateData, ThrowOnError>) => (options?.client ?? client).post<UploadWhitelistsCreateResponses, UploadWhitelistsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/upload_whitelists.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Upload Whitelist\n *\n * You must be Admin+.\n */\nexport const uploadWhitelists_destroy = <ThrowOnError extends boolean = false>(options: Options<UploadWhitelistsDestroyData, ThrowOnError>) => (options.client ?? client).delete<UploadWhitelistsDestroyResponses, UploadWhitelistsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/upload_whitelists/{id}.json',\n ...options\n});\n\n/**\n * Update Upload Whitelist\n */\nexport const uploadWhitelists_update = <ThrowOnError extends boolean = false>(options: Options<UploadWhitelistsUpdateData, ThrowOnError>) => (options.client ?? client).patch<UploadWhitelistsUpdateResponses, UploadWhitelistsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/upload_whitelists/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Check If URL Is Allowed\n */\nexport const uploadWhitelists_isAllowed = <ThrowOnError extends boolean = false>(options?: Options<UploadWhitelistsIsAllowedData, ThrowOnError>) => (options?.client ?? client).get<UploadWhitelistsIsAllowedResponses, UploadWhitelistsIsAllowedErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/upload_whitelists/is_allowed.json',\n ...options\n});\n\n/**\n * Users Index\n */\nexport const users_index = <ThrowOnError extends boolean = false>(options?: Options<UsersIndexData, ThrowOnError>) => (options?.client ?? client).get<UsersIndexResponses, unknown, ThrowOnError>({ url: '/users.json', ...options });\n\n/**\n * Get Current User\n *\n * This will return the default settings for anonymous users if no authentication is used.\n * This most interesting part is probably the default blacklist, located in `blacklisted_tags`.\n *\n */\nexport const users_me = <ThrowOnError extends boolean = false>(options?: Options<UsersMeData, ThrowOnError>) => (options?.client ?? client).get<UsersMeResponses, unknown, ThrowOnError>({ url: '/users/me.json', ...options });\n\n/**\n * Get Avatar Menu\n */\nexport const users_avatarMenu = <ThrowOnError extends boolean = false>(options?: Options<UsersAvatarMenuData, ThrowOnError>) => (options?.client ?? client).get<UsersAvatarMenuResponses, UsersAvatarMenuErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/avatar_menu.json',\n ...options\n});\n\n/**\n * Get User\n */\nexport const users_show = <ThrowOnError extends boolean = false>(options: Options<UsersShowData, ThrowOnError>) => (options.client ?? client).get<UsersShowResponses, UsersShowErrors, ThrowOnError>({ url: '/users/{idOrName}.json', ...options });\n\n/**\n * Update Current User\n */\nexport const users_update = <ThrowOnError extends boolean = false>(options: Options<UsersUpdateData, ThrowOnError>) => (options.client ?? client).patch<UsersUpdateResponses, UsersUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get User Upload Limit\n */\nexport const users_uploadLimit = <ThrowOnError extends boolean = false>(options: Options<UsersUploadLimitData, ThrowOnError>) => (options.client ?? client).get<UsersUploadLimitResponses, UsersUploadLimitErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}/upload_limit.json',\n ...options\n});\n\n/**\n * Clear User Favorites\n *\n * You must be Admin+.\n */\nexport const users_flushFavorites = <ThrowOnError extends boolean = false>(options: Options<UsersFlushFavoritesData, ThrowOnError>) => (options.client ?? client).post<unknown, UsersFlushFavoritesErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}/flush_favorites.json',\n ...options\n});\n\n/**\n * Staff Fix User Counts\n *\n * You must be Janitor+.\n */\nexport const users_fixCounts = <ThrowOnError extends boolean = false>(options: Options<UsersFixCountsData, ThrowOnError>) => (options.client ?? client).get<unknown, UsersFixCountsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}/fix_counts.json',\n ...options\n});\n\n/**\n * Toggle User Uploads\n *\n * You must be Janitor+.\n * This endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.\n *\n */\nexport const users_toggleUploads = <ThrowOnError extends boolean = false>(options: Options<UsersToggleUploadsData, ThrowOnError>) => (options.client ?? client).get<unknown, UsersToggleUploadsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}/toggle_uploads.json',\n ...options\n});\n\n/**\n * Disable User Uploads\n *\n * You must be Janitor+.\n */\nexport const users_disableUploads = <ThrowOnError extends boolean = false>(options: Options<UsersDisableUploadsData, ThrowOnError>) => (options.client ?? client).post<unknown, UsersDisableUploadsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/users/{idOrName}/disable_uploads.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fix User Counts\n */\nexport const maintenanceUserCountFixes_create = <ThrowOnError extends boolean = false>(options?: Options<MaintenanceUserCountFixesCreateData, ThrowOnError>) => (options?.client ?? client).post<unknown, MaintenanceUserCountFixesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/maintenance/user/count_fixes.json',\n ...options\n});\n\n/**\n * Update User Dmail Filter\n */\nexport const maintenanceUserDmailFilters_update = <ThrowOnError extends boolean = false>(options: Options<MaintenanceUserDmailFiltersUpdateData, ThrowOnError>) => (options.client ?? client).patch<MaintenanceUserDmailFiltersUpdateResponses, MaintenanceUserDmailFiltersUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/maintenance/user/dmail_filter.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Update Avatar Crop\n */\nexport const maintenanceUserAvatars_update = <ThrowOnError extends boolean = false>(options?: Options<MaintenanceUserAvatarsUpdateData, ThrowOnError>) => (options?.client ?? client).patch<unknown, MaintenanceUserAvatarsUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/maintenance/user/avatar.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * User Feedbacks Index\n */\nexport const userFeedbacks_index = <ThrowOnError extends boolean = false>(options?: Options<UserFeedbacksIndexData, ThrowOnError>) => (options?.client ?? client).get<UserFeedbacksIndexResponses, unknown, ThrowOnError>({ url: '/user_feedbacks.json', ...options });\n\n/**\n * Create User Feedback\n *\n * You must be Moderator+.\n */\nexport const userFeedbacks_create = <ThrowOnError extends boolean = false>(options?: Options<UserFeedbacksCreateData, ThrowOnError>) => (options?.client ?? client).post<UserFeedbacksCreateResponses, UserFeedbacksCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_feedbacks.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Destroy User Feedback\n *\n * You must be Admin+, or the creator and Moderator+.\n */\nexport const userFeedbacks_destroy = <ThrowOnError extends boolean = false>(options: Options<UserFeedbacksDestroyData, ThrowOnError>) => (options.client ?? client).delete<UserFeedbacksDestroyResponses, UserFeedbacksDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_feedbacks/{id}.json',\n ...options\n});\n\n/**\n * Get User Feedback\n *\n * You must be Staff+ if the feedback is deleted.\n */\nexport const userFeedbacks_show = <ThrowOnError extends boolean = false>(options: Options<UserFeedbacksShowData, ThrowOnError>) => (options.client ?? client).get<UserFeedbacksShowResponses, UserFeedbacksShowErrors, ThrowOnError>({ url: '/user_feedbacks/{id}.json', ...options });\n\n/**\n * Update User Feedback\n *\n * You must be Moderator+.\n */\nexport const userFeedbacks_update = <ThrowOnError extends boolean = false>(options: Options<UserFeedbacksUpdateData, ThrowOnError>) => (options.client ?? client).patch<UserFeedbacksUpdateResponses, UserFeedbacksUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_feedbacks/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete User Feedback\n *\n * You must be Moderator+.\n */\nexport const userFeedbacks_delete = <ThrowOnError extends boolean = false>(options: Options<UserFeedbacksDeleteData, ThrowOnError>) => (options.client ?? client).put<UserFeedbacksDeleteResponses, UserFeedbacksDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_feedbacks/{id}/delete.json',\n ...options\n});\n\n/**\n * Undelete User Feedback\n *\n * You must be Moderator+.\n */\nexport const userFeedbacks_undelete = <ThrowOnError extends boolean = false>(options: Options<UserFeedbacksUndeleteData, ThrowOnError>) => (options.client ?? client).put<UserFeedbacksUndeleteResponses, UserFeedbacksUndeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_feedbacks/{id}/undelete.json',\n ...options\n});\n\n/**\n * User Name Change Requests Index\n *\n * You must be Moderator+.\n */\nexport const userNameChangeRequests_index = <ThrowOnError extends boolean = false>(options?: Options<UserNameChangeRequestsIndexData, ThrowOnError>) => (options?.client ?? client).get<UserNameChangeRequestsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_name_change_requests.json',\n ...options\n});\n\n/**\n * Create User Name Change Request\n */\nexport const userNameChangeRequests_create = <ThrowOnError extends boolean = false>(options?: Options<UserNameChangeRequestsCreateData, ThrowOnError>) => (options?.client ?? client).post<unknown, UserNameChangeRequestsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_name_change_requests.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete User Name Change Request\n *\n * You must be Moderator+.\n */\nexport const userNameChangeRequests_destroy = <ThrowOnError extends boolean = false>(options: Options<UserNameChangeRequestsDestroyData, ThrowOnError>) => (options.client ?? client).delete<unknown, UserNameChangeRequestsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_name_change_requests/{id}.json',\n ...options\n});\n\n/**\n * Get User Name Change Request\n *\n * You must be the creator of the request or Moderator+.\n */\nexport const userNameChangeRequests_show = <ThrowOnError extends boolean = false>(options: Options<UserNameChangeRequestsShowData, ThrowOnError>) => (options.client ?? client).get<UserNameChangeRequestsShowResponses, UserNameChangeRequestsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/user_name_change_requests/{id}.json',\n ...options\n});\n\n/**\n * Wiki Pages Index\n */\nexport const wikiPages_index = <ThrowOnError extends boolean = false>(options?: Options<WikiPagesIndexData, ThrowOnError>) => (options?.client ?? client).get<WikiPagesIndexResponses, unknown, ThrowOnError>({ url: '/wiki_pages.json', ...options });\n\n/**\n * Create Wiki Page\n */\nexport const wikiPages_create = <ThrowOnError extends boolean = false>(options?: Options<WikiPagesCreateData, ThrowOnError>) => (options?.client ?? client).post<WikiPagesCreateResponses, WikiPagesCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/wiki_pages.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Delete Wiki Page\n *\n * You must be Admin+\n */\nexport const wikiPages_destroy = <ThrowOnError extends boolean = false>(options: Options<WikiPagesDestroyData, ThrowOnError>) => (options.client ?? client).delete<WikiPagesDestroyResponses, WikiPagesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/wiki_pages/{id}.json',\n ...options\n});\n\n/**\n * Get Wiki Page\n */\nexport const wikiPages_show = <ThrowOnError extends boolean = false>(options: Options<WikiPagesShowData, ThrowOnError>) => (options.client ?? client).get<WikiPagesShowResponses, WikiPagesShowErrors, ThrowOnError>({ url: '/wiki_pages/{id}.json', ...options });\n\n/**\n * Update Wiki Page\n *\n * You must be Staff+ if the wiki page is locked.\n */\nexport const wikiPages_update = <ThrowOnError extends boolean = false>(options: Options<WikiPagesUpdateData, ThrowOnError>) => (options.client ?? client).patch<WikiPagesUpdateResponses, WikiPagesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/wiki_pages/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Revert Wiki Page\n */\nexport const wikiPages_revert = <ThrowOnError extends boolean = false>(options: Options<WikiPagesRevertData, ThrowOnError>) => (options.client ?? client).put<WikiPagesRevertResponses, WikiPagesRevertErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/wiki_pages/{id}/revert.json',\n ...options\n});\n\n/**\n * Wiki Page Versions Index\n */\nexport const wikiPageVersions_index = <ThrowOnError extends boolean = false>(options?: Options<WikiPageVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<WikiPageVersionsIndexResponses, unknown, ThrowOnError>({ url: '/wiki_page_versions.json', ...options });\n\n/**\n * Get Wiki Page Version\n */\nexport const wikiPageVersions_show = <ThrowOnError extends boolean = false>(options: Options<WikiPageVersionsShowData, ThrowOnError>) => (options.client ?? client).get<WikiPageVersionsShowResponses, WikiPageVersionsShowErrors, ThrowOnError>({ url: '/wiki_page_versions/{id}.json', ...options });\n\n/**\n * Get Alt List\n *\n * You must be Admin+.\n */\nexport const staffUsers_altList = <ThrowOnError extends boolean = false>(options?: Options<StaffUsersAltListData, ThrowOnError>) => (options?.client ?? client).get<StaffUsersAltListResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/users/alt_list.json',\n ...options\n});\n\n/**\n * Admin Edit User\n *\n * You must be Admin+. If editing an Admin+, you must be Owner+.\n */\nexport const staffUsers_update = <ThrowOnError extends boolean = false>(options: Options<StaffUsersUpdateData, ThrowOnError>) => (options.client ?? client).patch<StaffUsersUpdateResponses, StaffUsersUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/users/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Admin Anonymize User\n *\n * You must have the bd staff user flag. Cannot be used on staff.\n */\nexport const staffUsers_anonymizeConfirm = <ThrowOnError extends boolean = false>(options: Options<StaffUsersAnonymizeConfirmData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUsersAnonymizeConfirmErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/users/{id}/anonymize.json',\n ...options\n});\n\n/**\n * Audit User DMails\n *\n * Must have the bd auditor user flag.\n */\nexport const staffDmails_index = <ThrowOnError extends boolean = false>(options: Options<StaffDmailsIndexData, ThrowOnError>) => (options.client ?? client).get<StaffDmailsIndexResponses, StaffDmailsIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/users/{user_id}/dmails.json',\n ...options\n});\n\n/**\n * Audit User DMail\n *\n * Must have the bd auditor user flag.\n */\nexport const staffDmails_show = <ThrowOnError extends boolean = false>(options: Options<StaffDmailsShowData, ThrowOnError>) => (options.client ?? client).get<StaffDmailsShowResponses, StaffDmailsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/users/{user_id}/dmails/{id}.json',\n ...options\n});\n\n/**\n * Get Automod DMails\n *\n * You must be Staff+.\n */\nexport const staffAutomodDmails_index = <ThrowOnError extends boolean = false>(options?: Options<StaffAutomodDmailsIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffAutomodDmailsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/automod_dmails.json',\n ...options\n});\n\n/**\n * Get Automod DMail\n *\n * You must be Staff+.\n */\nexport const staffAutomodDmails_show = <ThrowOnError extends boolean = false>(options: Options<StaffAutomodDmailsShowData, ThrowOnError>) => (options.client ?? client).get<StaffAutomodDmailsShowResponses, StaffAutomodDmailsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/automod_dmails/{id}.json',\n ...options\n});\n\n/**\n * Mark Automod DMail As Read\n *\n * You must be Staff+.\n */\nexport const staffAutomodDmails_markAsRead = <ThrowOnError extends boolean = false>(options: Options<StaffAutomodDmailsMarkAsReadData, ThrowOnError>) => (options.client ?? client).put<StaffAutomodDmailsMarkAsReadResponses, StaffAutomodDmailsMarkAsReadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/automod_dmails/{id}/mark_as_read.json',\n ...options\n});\n\n/**\n * Mark Automod DMail As Unread\n *\n * You must be Staff+.\n */\nexport const staffAutomodDmails_markAsUnread = <ThrowOnError extends boolean = false>(options: Options<StaffAutomodDmailsMarkAsUnreadData, ThrowOnError>) => (options.client ?? client).put<StaffAutomodDmailsMarkAsUnreadResponses, StaffAutomodDmailsMarkAsUnreadErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/automod_dmails/{id}/mark_as_unread.json',\n ...options\n});\n\n/**\n * Get Exception Logs\n *\n * You must be Staff+.\n */\nexport const staffExceptions_index = <ThrowOnError extends boolean = false>(options?: Options<StaffExceptionsIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffExceptionsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/exceptions.json',\n ...options\n});\n\n/**\n * Get Exception Log\n *\n * You must be Staff+.\n */\nexport const staffExceptions_show = <ThrowOnError extends boolean = false>(options: Options<StaffExceptionsShowData, ThrowOnError>) => (options.client ?? client).get<StaffExceptionsShowResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/exceptions/{id}.json',\n ...options\n});\n\n/**\n * Delete Post\n *\n * You must have the \"Approve Posts\" permission. `commit=Delete` must be set.\n */\nexport const staffPostPosts_delete = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsDeleteData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffPostPostsDeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/delete.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Undelete Post\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const staffPostPosts_undelete = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsUndeleteData, ThrowOnError>) => (options.client ?? client).post<StaffPostPostsUndeleteResponses, StaffPostPostsUndeleteErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/undelete.json',\n ...options\n});\n\n/**\n * Regenerate Post Thumbnails\n *\n * You must be Janitor+.\n */\nexport const staffPostPosts_regenerateThumbnails = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsRegenerateThumbnailsData, ThrowOnError>) => (options.client ?? client).post<StaffPostPostsRegenerateThumbnailsResponses, StaffPostPostsRegenerateThumbnailsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/regenerate_thumbnails.json',\n ...options\n});\n\n/**\n * Regenerate Post Videos\n *\n * You must be Janitor+.\n */\nexport const staffPostPosts_regenerateVideos = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsRegenerateVideosData, ThrowOnError>) => (options.client ?? client).post<StaffPostPostsRegenerateVideosResponses, StaffPostPostsRegenerateVideosErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/regenerate_videos.json',\n ...options\n});\n\n/**\n * Expunge Post\n *\n * You must have the \"Approve Posts\" permission and be Admin+.\n */\nexport const staffPostPosts_expunge = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsExpungeData, ThrowOnError>) => (options.client ?? client).post<StaffPostPostsExpungeResponses, StaffPostPostsExpungeErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/expunge.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Move Post Favorites\n *\n * You must have the \"Approve Posts\" permission. `commit=Submit`` must be set.\n */\nexport const staffPostPosts_moveFavorites = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsMoveFavoritesData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffPostPostsMoveFavoritesErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/move_favorites.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * AI Check Post\n *\n * You must be Janitor+.\n */\nexport const staffPostPosts_aiCheck = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsAiCheckData, ThrowOnError>) => (options.client ?? client).get<unknown, StaffPostPostsAiCheckErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/ai_check.json',\n ...options\n});\n\n/**\n * Get Post Previous Owners\n *\n * You must be an Approver\n */\nexport const staffPostPosts_previousOwners = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsPreviousOwnersData, ThrowOnError>) => (options.client ?? client).get<StaffPostPostsPreviousOwnersResponses, StaffPostPostsPreviousOwnersErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/previous_owners.json',\n ...options\n});\n\n/**\n * Reown Post\n *\n * You must have be Janitor+ and an Approver\n */\nexport const staffPostPosts_reowner = <ThrowOnError extends boolean = false>(options: Options<StaffPostPostsReownerData, ThrowOnError>) => (options.client ?? client).post<StaffPostPostsReownerResponses, StaffPostPostsReownerErrors, ThrowOnError>({\n ...urlSearchParamsBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/posts/{id}/reowner.json',\n ...options,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n ...options.headers\n }\n});\n\n/**\n * Unapprove Post\n *\n * You must have the \"Approve Posts\" permission. The response does not differ for success or failure.\n */\nexport const staffPostApprovals_destroy = <ThrowOnError extends boolean = false>(options?: Options<StaffPostApprovalsDestroyData, ThrowOnError>) => (options?.client ?? client).delete<StaffPostApprovalsDestroyResponses, StaffPostApprovalsDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/approval.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Approve Post\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const staffPostApprovals_create = <ThrowOnError extends boolean = false>(options?: Options<StaffPostApprovalsCreateData, ThrowOnError>) => (options?.client ?? client).post<StaffPostApprovalsCreateResponses, StaffPostApprovalsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/approval.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Clear User Avatar\n *\n * You must be Moderator+.\n */\nexport const staffUserCleanups_clearAvatar = <ThrowOnError extends boolean = false>(options: Options<StaffUserCleanupsClearAvatarData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUserCleanupsClearAvatarErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/user_cleanups/{id}/clear_avatar.json',\n ...options\n});\n\n/**\n * Clear User Profile\n *\n * You must be Moderator+.\n */\nexport const staffUserCleanups_clearProfile = <ThrowOnError extends boolean = false>(options: Options<StaffUserCleanupsClearProfileData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUserCleanupsClearProfileErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/user_cleanups/{id}/clear_profile.json',\n ...options\n});\n\n/**\n * Hide User Comments\n *\n * You must be Moderator+.\n */\nexport const staffUserCleanups_hideComments = <ThrowOnError extends boolean = false>(options: Options<StaffUserCleanupsHideCommentsData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUserCleanupsHideCommentsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/user_cleanups/{id}/hide_comments.json',\n ...options\n});\n\n/**\n * Hide User Forum Posts\n *\n * You must be Moderator+.\n */\nexport const staffUserCleanups_hideForumPosts = <ThrowOnError extends boolean = false>(options: Options<StaffUserCleanupsHideForumPostsData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUserCleanupsHideForumPostsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/user_cleanups/{id}/hide_forum_posts.json',\n ...options\n});\n\n/**\n * Hide User Blips\n *\n * You must be Moderator+.\n */\nexport const staffUserCleanups_hideBlips = <ThrowOnError extends boolean = false>(options: Options<StaffUserCleanupsHideBlipsData, ThrowOnError>) => (options.client ?? client).post<unknown, StaffUserCleanupsHideBlipsErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/user_cleanups/{id}/hide_blips.json',\n ...options\n});\n\n/**\n * Post Disapprovals Index\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const staffPostDisapprovals_index = <ThrowOnError extends boolean = false>(options?: Options<StaffPostDisapprovalsIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffPostDisapprovalsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/disapprovals.json',\n ...options\n});\n\n/**\n * Create Post Disapproval\n *\n * You must have the \"Approve Posts\" permission.\n */\nexport const staffPostDisapprovals_create = <ThrowOnError extends boolean = false>(options?: Options<StaffPostDisapprovalsCreateData, ThrowOnError>) => (options?.client ?? client).post<StaffPostDisapprovalsCreateResponses, StaffPostDisapprovalsCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/post/disapprovals.json',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Staff Files Index\n *\n * You must be Staff+.\n */\nexport const staffFiles_index = <ThrowOnError extends boolean = false>(options?: Options<StaffFilesIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffFilesIndexResponses, StaffFilesIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/files.json',\n ...options\n});\n\n/**\n * Create Staff File\n *\n * You must be Staff+\n */\nexport const staffFiles_create = <ThrowOnError extends boolean = false>(options?: Options<StaffFilesCreateData, ThrowOnError>) => (options?.client ?? client).post<StaffFilesCreateResponses, StaffFilesCreateErrors, ThrowOnError>({\n ...formDataBodySerializer,\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/files.json',\n ...options,\n headers: {\n 'Content-Type': null,\n ...options?.headers\n }\n});\n\n/**\n * Delete Staff File\n *\n * You must be Admin+ if you did not created the file, else Staff+\n */\nexport const staffFiles_destroy = <ThrowOnError extends boolean = false>(options: Options<StaffFilesDestroyData, ThrowOnError>) => (options.client ?? client).delete<StaffFilesDestroyResponses, StaffFilesDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/files/{id}.json',\n ...options\n});\n\n/**\n * Get Staff File\n *\n * You must be Staff+.\n */\nexport const staffFiles_show = <ThrowOnError extends boolean = false>(options: Options<StaffFilesShowData, ThrowOnError>) => (options.client ?? client).get<StaffFilesShowResponses, StaffFilesShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/files/{id}.json',\n ...options\n});\n\n/**\n * Update Staff File\n *\n * You must be Admin+ if you did not create the file, else Staff+\n */\nexport const staffFiles_update = <ThrowOnError extends boolean = false>(options: Options<StaffFilesUpdateData, ThrowOnError>) => (options.client ?? client).patch<StaffFilesUpdateResponses, StaffFilesUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/files/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'multipart/x-www-form-urlencoded',\n ...options.headers\n }\n});\n\n/**\n * Staff Wikis Index\n *\n * You must be Staff+.\n */\nexport const staffWikis_index = <ThrowOnError extends boolean = false>(options?: Options<StaffWikisIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffWikisIndexResponses, StaffWikisIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis.json',\n ...options\n});\n\n/**\n * Create Staff Wiki\n *\n * You must be Staff+\n */\nexport const staffWikis_create = <ThrowOnError extends boolean = false>(options?: Options<StaffWikisCreateData, ThrowOnError>) => (options?.client ?? client).post<StaffWikisCreateResponses, StaffWikisCreateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis.json',\n ...options,\n headers: {\n 'Content-Type': 'multipart/x-www-form-urlencoded',\n ...options?.headers\n }\n});\n\n/**\n * Delete Staff Wiki\n *\n * You must be Staff+.\n */\nexport const staffWikis_destroy = <ThrowOnError extends boolean = false>(options: Options<StaffWikisDestroyData, ThrowOnError>) => (options.client ?? client).delete<StaffWikisDestroyResponses, StaffWikisDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis/{id}.json',\n ...options\n});\n\n/**\n * Get Staff Wiki\n *\n * You must be Staff+.\n */\nexport const staffWikis_show = <ThrowOnError extends boolean = false>(options: Options<StaffWikisShowData, ThrowOnError>) => (options.client ?? client).get<StaffWikisShowResponses, StaffWikisShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis/{id}.json',\n ...options\n});\n\n/**\n * Update Staff Wiki\n *\n * You must be Staff+\n */\nexport const staffWikis_update = <ThrowOnError extends boolean = false>(options: Options<StaffWikisUpdateData, ThrowOnError>) => (options.client ?? client).patch<StaffWikisUpdateResponses, StaffWikisUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis/{id}.json',\n ...options,\n headers: {\n 'Content-Type': 'multipart/x-www-form-urlencoded',\n ...options.headers\n }\n});\n\n/**\n * Claim Staff Wiki\n *\n * You must be Staff+\n */\nexport const staffWikis_claim = <ThrowOnError extends boolean = false>(options: Options<StaffWikisClaimData, ThrowOnError>) => (options.client ?? client).post<StaffWikisClaimResponses, StaffWikisClaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis/{id}/claim.json',\n ...options\n});\n\n/**\n * Unclaim Staff Wiki\n *\n * You must be Staff+\n */\nexport const staffWikis_unclaim = <ThrowOnError extends boolean = false>(options: Options<StaffWikisUnclaimData, ThrowOnError>) => (options.client ?? client).post<StaffWikisUnclaimResponses, StaffWikisUnclaimErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wikis/{id}/unclaim.json',\n ...options\n});\n\n/**\n * Staff Wiki Versions Index\n *\n * You must be Staff+.\n */\nexport const staffWikiVersions_index = <ThrowOnError extends boolean = false>(options?: Options<StaffWikiVersionsIndexData, ThrowOnError>) => (options?.client ?? client).get<StaffWikiVersionsIndexResponses, StaffWikiVersionsIndexErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wiki_versions.json',\n ...options\n});\n\n/**\n * Get Staff Wiki Version\n *\n * You must be Staff+.\n */\nexport const staffWikiVersions_show = <ThrowOnError extends boolean = false>(options: Options<StaffWikiVersionsShowData, ThrowOnError>) => (options.client ?? client).get<StaffWikiVersionsShowResponses, StaffWikiVersionsShowErrors, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/wiki_versions/{id}.json',\n ...options\n});\n\n/**\n * Get Vote Trends\n *\n * You must be Staff+.\n */\nexport const staffVoteTrends_index = <ThrowOnError extends boolean = false>(options: Options<StaffVoteTrendsIndexData, ThrowOnError>) => (options.client ?? client).get<StaffVoteTrendsIndexResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'basic', type: 'http' }],\n url: '/staff/vote_trends.json',\n ...options\n});\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nexport type { Auth } from '../core/auth.js';\nexport type { QuerySerializerOptions } from '../core/bodySerializer.js';\nexport {\n formDataBodySerializer,\n jsonBodySerializer,\n urlSearchParamsBodySerializer,\n} from '../core/bodySerializer.js';\nexport { buildClientParams } from '../core/params.js';\nexport { serializeQueryKeyValue } from '../core/queryKeySerializer.js';\nexport { createClient } from './client.js';\nexport type {\n Client,\n ClientOptions,\n Config,\n CreateClientConfig,\n Options,\n RequestOptions,\n RequestResult,\n ResolvedRequestOptions,\n ResponseStyle,\n TDataShape,\n} from './types.js';\nexport { createConfig, mergeHeaders } from './utils.js';\n", "// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {\n const params: Params = {\n body: Object.create(null),\n headers: Object.create(null),\n path: Object.create(null),\n query: Object.create(null),\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\n/**\n * JSON-friendly union that mirrors what Pinia Colada can hash.\n */\nexport type JsonValue =\n | null\n | string\n | number\n | boolean\n | JsonValue[]\n | { [key: string]: JsonValue };\n\n/**\n * Replacer that converts non-JSON values (bigint, Date, etc.) to safe substitutes.\n */\nexport const queryKeyJsonReplacer = (_key: string, value: unknown) => {\n if (value === undefined || typeof value === 'function' || typeof value === 'symbol') {\n return undefined;\n }\n if (typeof value === 'bigint') {\n return value.toString();\n }\n if (value instanceof Date) {\n return value.toISOString();\n }\n return value;\n};\n\n/**\n * Safely stringifies a value and parses it back into a JsonValue.\n */\nexport const stringifyToJsonValue = (input: unknown): JsonValue | undefined => {\n try {\n const json = JSON.stringify(input, queryKeyJsonReplacer);\n if (json === undefined) {\n return undefined;\n }\n return JSON.parse(json) as JsonValue;\n } catch {\n return undefined;\n }\n};\n\n/**\n * Detects plain objects (including objects with a null prototype).\n */\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value as object);\n return prototype === Object.prototype || prototype === null;\n};\n\n/**\n * Turns URLSearchParams into a sorted JSON object for deterministic keys.\n */\nconst serializeSearchParams = (params: URLSearchParams): JsonValue => {\n const entries = Array.from(params.entries()).sort(([a], [b]) => a.localeCompare(b));\n const result: Record<string, JsonValue> = {};\n\n for (const [key, value] of entries) {\n const existing = result[key];\n if (existing === undefined) {\n result[key] = value;\n continue;\n }\n\n if (Array.isArray(existing)) {\n (existing as string[]).push(value);\n } else {\n result[key] = [existing, value];\n }\n }\n\n return result;\n};\n\n/**\n * Normalizes any accepted value into a JSON-friendly shape for query keys.\n */\nexport const serializeQueryKeyValue = (value: unknown): JsonValue | undefined => {\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return value;\n }\n\n if (value === undefined || typeof value === 'function' || typeof value === 'symbol') {\n return undefined;\n }\n\n if (typeof value === 'bigint') {\n return value.toString();\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (Array.isArray(value)) {\n return stringifyToJsonValue(value);\n }\n\n if (typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams) {\n return serializeSearchParams(value);\n }\n\n if (isPlainObject(value)) {\n return stringifyToJsonValue(value);\n }\n\n return undefined;\n};\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client/index.js';\nimport type { ClientOptions as ClientOptions2 } from './types.js';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://e621.net' }));\n", "/** @category Types */\nexport type ExtractOrder<T extends { query?: { \"search[order]\"?: string } }> = ExtractValue<\"search[order]\", T>;\n/** @category Types */\nexport type ExtractValue<K extends string, T extends { body?: Partial<Record<K, unknown>>; query?: Partial<Record<K, unknown>> }>\n = T[\"body\"] extends undefined ? T[\"query\"] extends undefined ? never\n : Exclude<Exclude<T[\"query\"], undefined>[K], undefined>\n : Exclude<Exclude<T[\"body\"], undefined>[K], undefined>;\n/** @category Types */\ntype TransformNestedKey<T extends string | number | symbol> = T extends `${string}[${infer U}]` ? U : T;\n\n/** @category Types */\ntype OptionalKeys<T extends object> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? K : never;\n}[keyof T];\n\n/** @category Types */\ntype RequiredKeys<T extends object> = Exclude<keyof T, OptionalKeys<T>>;\n\n/** @category Types */\nexport type GetResponse<T extends Record<number, unknown>, S extends keyof T> = T[S] extends undefined ? never : T[S];\n\n/** @category Types */\nexport type TransformDataQueryToOptions<T extends Record<string, unknown>>\n = T extends { query?: infer Query }\n ? Query extends Record<string, unknown>\n // eslint-disable-next-line @stylistic/indent-binary-ops\n ? {\n [K in RequiredKeys<Query> as TransformNestedKey<K>]: Query[K];\n } & {\n [K in OptionalKeys<Query> as TransformNestedKey<K>]?: Query[K];\n }\n : never\n : never;\n\n/** @category Types */\nexport type TransformDataBodyToOptions<T extends Record<string, unknown>>\n = T extends { body?: infer Body }\n ? Body extends Record<string, unknown>\n // eslint-disable-next-line @stylistic/indent-binary-ops\n ? {\n [K in RequiredKeys<Body> as TransformNestedKey<K>]: Body[K];\n } & {\n [K in OptionalKeys<Body> as TransformNestedKey<K>]?: Body[K];\n }\n : never\n : never;\n\n/** @category Types */\nexport type PrefixKeys<\n T extends Record<string, unknown>,\n Root extends string,\n Excluded extends keyof T = never,\n> = {\n [K in keyof T as K extends Excluded\n ? K\n : `${Root}[${Extract<K, string>}]`]: T[K];\n};\n\nexport function prefixKeys<\n Root extends string,\n T extends Record<string, unknown>,\n Excluded extends ReadonlyArray<keyof T> = [],\n>(obj: T, root: Root, exclude?: Excluded): PrefixKeys<T, Root, Excluded[number]>;\nexport function prefixKeys<\n Root extends string,\n T extends Record<string, unknown>,\n Excluded extends ReadonlyArray<keyof T> = [],\n>(obj: T | undefined, root: Root, exclude?: Excluded): PrefixKeys<T, Root, Excluded[number]> | undefined;\nexport function prefixKeys<\n Root extends string,\n T extends Record<string, unknown>,\n Excluded extends ReadonlyArray<keyof T> = [],\n>(obj: T, root: Root, exclude?: Excluded): PrefixKeys<T, Root, Excluded[number]> | undefined {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (obj === undefined) return undefined;\n const result: Record<string, unknown> = {};\n const excludeSet = new Set(exclude ?? []);\n\n for (const key of Object.keys(obj)) {\n if (excludeSet.has(key)) {\n result[key] = obj[key];\n } else {\n result[`${root}[${key}]`] = obj[key];\n }\n }\n\n return result as PrefixKeys<T, Root, Excluded[number]>;\n}\n\n// Validated against the OpenAPI spec at build time instead of at runtime (see scripts/replace-openapi.ts) -\n// doing it here would require bundling the entire spec (500+KB) into every consumer's build just to check\n// a handful of strings once, at class-definition time.\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function OperationID(value: string): (target: any, propertyKey: string) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (target: any, propertyKey: string): void {\n Object.defineProperty((target as object)[propertyKey as never], \"OperationID\", {\n value,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function Schema(value: string): (target: any) => void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (target: any): void {\n Object.defineProperty(target, \"Schema\", {\n value,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n };\n}\n", "import type E621 from \"../index.js\";\nimport type { NoV2Options, PostFormatOptions } from \"../modules/posts/Format.js\";\n\n/**\n * Browser build of {@link Base}. `node:util`'s `inspect` is Node-only and pulling it in breaks browser\n * bundlers (see #15), so this variant drops the custom inspect implementation and is swapped in via\n * package.json's `browser` field.\n *\n * @category Models\n */\nexport default abstract class Base<D = unknown, PF extends PostFormatOptions = NoV2Options> {\n protected data!: D;\n protected e621!: E621<PF>;\n constructor(e621: E621<PF>, data: D) {\n Object.defineProperties(this, {\n e621: { value: e621, enumerable: false },\n data: { value: data, enumerable: false },\n });\n Object.assign(this, data);\n }\n\n toJSON(): D {\n return this.data;\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Appeal as AppealData } from \"../generated/types.js\";\nimport type { UpdateAppealOptions } from \"../modules/Appeals.js\";\n\ninterface Appeal extends AppealData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Appeal Appeal}\n *\n * @see {@link https://e621.wiki/#model-Appeal Documentation} for more details.\n */\n@Schema(\"Appeal\")\nclass Appeal extends Base<AppealData> {\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#claim appeals#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#claim\")\n async claim(): Promise<Appeal> {\n return this.e621.appeals.claim(this.id);\n }\n\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#unclaim appeals#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#unclaim\")\n async unclaim(): Promise<Appeal> {\n return this.e621.appeals.unclaim(this.id);\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#update appeals#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#update\")\n async update(options: UpdateAppealOptions): Promise<null> {\n return this.e621.appeals.update(this.id, options);\n }\n}\n\nexport default Appeal;\n", "/** @category Errors */\nexport class UnexpectedResponseError extends Error {\n error!: unknown;\n override name = \"UnexpectedResponseError\";\n request?: Request;\n response?: Response;\n constructor(request: Request | undefined, response: Response | undefined, error: unknown) {\n let message = response\n ? `Unexpected ${response.status} ${response.statusText} on ${request?.method ?? \"?\"} ${request?.url ?? response.url}`\n : request\n ? `Network error on ${request.method} ${request.url}`\n : \"Network error while building the request\";\n if (error) {\n if (typeof error === \"string\") message += `\\n${error}`;\n else if (error instanceof Error) message += `\\n${error.message}`;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n else if (typeof error === \"object\" && error !== null) {\n if (\"message\" in error && typeof error.message === \"string\") message += `\\n${error.message}`;\n else if (\"error\" in error && typeof error.error === \"string\") message += `\\n${error.error}`;\n else if (\"errors\" in error && typeof error.errors === \"object\" && error.errors !== null) {\n for (const [key, value] of Object.entries(error.errors)) {\n if (typeof value === \"string\") message += `\\n${key}: ${value}`;\n else if (Array.isArray(value)) message += `\\n${key}: ${value.join(\", \")}`;\n }\n }\n }\n }\n super(message);\n Object.defineProperties(this, {\n request: { value: request, enumerable: false },\n response: { value: response, enumerable: false },\n error: { value: error, enumerable: false },\n });\n }\n}\n", "import { UnexpectedResponseError } from \"../errors.js\";\n\nimport type { Client } from \"../generated/client/types.js\";\nimport type E621 from \"../index.js\";\nimport type { NoV2Options, PostFormatOptions } from \"./posts/Format.js\";\n\ninterface AnyResponse<D = unknown> {\n data?: D;\n error: unknown;\n request?: Request;\n response?: Response;\n}\ntype AnyDataClass<D = unknown, T = unknown> = new (e621: E621, data: D) => T;\ntype DataType<R extends AnyResponse> = R extends AnyResponse<infer U> ? Exclude<U, undefined> : never;\ntype UnwrapData<R extends AnyResponse> = DataType<R> extends Array<infer U> ? U : DataType<R>;\n\n/**\n * @category Modules\n *\n * Every concrete subclass must also declare `static readonly moduleKey`, the property name it's attached\n * under on {@link E621} (e.g. `\"posts\"`) - used by `createStandalone`. TypeScript can't enforce abstract\n * static members, so this is a convention rather than a compiler-checked contract.\n */\nexport default abstract class Base<PF extends PostFormatOptions = NoV2Options> {\n protected client!: Client;\n protected e621!: E621<PF>;\n /**\n * `e621` may be omitted (pass `undefined`) when constructing a module standalone, without the main\n * {@link E621} client, to keep bundles tree-shakable. Convenience methods on models returned by this\n * module that call back into other modules via `this.e621` will throw in that case.\n */\n constructor(e621: E621<PF> | undefined, client: Client) {\n Object.defineProperties(this, {\n client: { value: client, enumerable: false },\n e621: { value: e621, enumerable: false },\n });\n }\n\n /** @internal */\n protected _handleResponse<\n R extends AnyResponse,\n S extends number = number,\n T extends boolean = boolean,\n C extends AnyDataClass<UnwrapData<R>> | undefined = undefined,\n CR = C extends AnyDataClass<UnwrapData<R>, infer I> ? I : undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n >(res: R, successStatus: S = 200 as S, throwOnNotFound: T = true as T, klass: C = undefined as C): T extends true ? (S extends 204 ? null : S extends 302 ? string : C extends undefined ? DataType<R> : (DataType<R> extends Array<any> ? Array<CR> : CR)) : (S extends 204 ? null : S extends 302 ? string : (C extends undefined ? DataType<R> : (DataType<R> extends Array<any> ? Array<CR> : CR)) | null) {\n if (res.response?.status === successStatus) {\n if (successStatus === 204) return null as never;\n if (successStatus === 302) return res.response.headers.get(\"Location\") as never;\n else if (res.data === undefined) {\n throw new UnexpectedResponseError(res.request, res.response, res.error);\n } else {\n if (klass) {\n // klass here is always a plain (non-post-format) model, unrelated to PF - the cast just\n // satisfies its constructor's bare E621 parameter type.\n const e621 = this.e621 as unknown as E621;\n if (Array.isArray(res.data)) return res.data.map(item => new klass(e621, item as UnwrapData<R>)) as never;\n else return new klass(e621, res.data as UnwrapData<R>) as never;\n } else return res.data as never;\n }\n } else if (res.response?.status === 404 && !throwOnNotFound) return null as never;\n else throw new UnexpectedResponseError(res.request, res.response, res.error);\n }\n}\n", "import { appeals_claim, appeals_index, appeals_show, appeals_unclaim, appeals_update } from \"../generated/sdk.js\";\nimport Appeal from \"../models/Appeal.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { AppealsIndexData, AppealsUpdateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchAppealsOptions extends TransformDataQueryToOptions<AppealsIndexData> {}\n/** @category Modules/Types */\nexport interface UpdateAppealOptions extends TransformDataBodyToOptions<AppealsUpdateData> {}\n\n/** @category Modules */\nexport default class Appeals extends Base {\n static readonly moduleKey = \"appeals\" as const;\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#claim appeals#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#claim\")\n async claim(id: number): Promise<Appeal> {\n return appeals_claim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Appeal));\n }\n\n /**\n\t *\n\t * Requires Janitor+ to see appeals not created by you.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#show appeals#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#show\")\n async get(id: number): Promise<Appeal | null> {\n return appeals_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Appeal));\n }\n\n /**\n\t *\n\t * Requires Janitor+ to see appeals not created by you.\n\t *\n\t * @requiresCookieAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#index appeals#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#index\")\n async search(options?: SearchAppealsOptions): Promise<Array<Appeal>> {\n return appeals_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then((res) => {\n // NOTE: the spec incorrectly references the \"ApiKey\" schema for this response - it is actually an array of Appeal.\n const data = this._handleResponse(res, 200, true) as unknown as Array<ConstructorParameters<typeof Appeal>[1]>;\n return data.map(appeal => new Appeal(this.e621, appeal));\n });\n }\n\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#unclaim appeals#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#unclaim\")\n async unclaim(id: number): Promise<Appeal> {\n return appeals_unclaim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Appeal));\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Appeals-appeals\\#update appeals#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Appeals-appeals\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"appeals#update\")\n async update(id: number, options: UpdateAppealOptions): Promise<null> {\n return appeals_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type ArtistUrl from \"./ArtistUrl.js\";\nimport type { Artist as ArtistData } from \"../generated/types.js\";\nimport type { UpdateArtistOptions } from \"../modules/Artists.js\";\n\ninterface Artist extends ArtistData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Artist Artist}\n *\n * @see {@link https://e621.wiki/#model-Artist Documentation} for more details.\n */\n@Schema(\"Artist\")\nclass Artist extends Base<ArtistData> {\n domains: Array<[string, number]> | undefined; urls: Array<ArtistUrl> | undefined;\n /**\n\t *\n\t * You must be an Admin+ to delete an artist.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#destroy artists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"artists#destroy\")\n async delete(): Promise<null> {\n return this.e621.artists.delete(this.id);\n }\n\n /**\n\t *\n\t * If an artist is locked, you must be Staff+ to revert them.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#revert artists#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"artists#revert\")\n async revert(version_id: number): Promise<null> {\n return this.e621.artists.revert(this.id, version_id);\n }\n\n /**\n\t *\n\t * If an artist is locked, you must be Staff+ to edit them.\n`other_names` & `urls` are silently truncated to 25 entries.\n`notes` is silently truncated to the wiki page limit (250,000).\nIndividual `other_names` are silently truncated to 100 characters.\nIf an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#update artists#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"artists#update\")\n async update(options: UpdateArtistOptions): Promise<null> {\n return this.e621.artists.update(this.id, options);\n }\n}\n\nexport default Artist;\n", "import {\n artists_create,\n artists_destroy,\n artists_update,\n artists_show,\n artists_revert,\n artists_index,\n} from \"../generated/sdk.js\";\nimport Artist from \"../models/Artist.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ArtistsCreateData, ArtistsUpdateData, ArtistsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateArtistOptions extends TransformDataBodyToOptions<ArtistsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateArtistOptions extends TransformDataBodyToOptions<ArtistsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchArtistsOptions extends TransformDataQueryToOptions<ArtistsIndexData> {}\n\n/** @category Modules */\nexport default class Artists extends Base {\n static readonly moduleKey = \"artists\" as const;\n /**\n\t *\n\t * `other_names` & `urls` are silently truncated to 25 entries.\n`notes` is silently truncated to the wiki page limit (250,000).\nIndividual `other_names` are silently truncated to 100 characters.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#create artists#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"artists#create\")\n async create(options: CreateArtistOptions): Promise<Artist> {\n return artists_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Artist));\n }\n\n /**\n\t *\n\t * You must be an Admin+ to delete an artist.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#destroy artists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"artists#destroy\")\n async delete(idOrName: string | number): Promise<null> {\n return artists_destroy({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#show artists#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"artists#show\")\n async get(idOrName: number | string): Promise<Artist | null> {\n return artists_show({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 200, false, Artist));\n }\n\n /**\n\t *\n\t * If an artist is locked, you must be Staff+ to revert them.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#revert artists#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"artists#revert\")\n async revert(idOrName: number | string, version_id: number): Promise<null> {\n return artists_revert({\n client: this.client,\n path: { idOrName },\n query: { version_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#index artists#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"artists#index\")\n async search(options?: SearchArtistsOptions): Promise<Array<Artist>> {\n return artists_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Artist));\n }\n\n /**\n\t *\n\t * If an artist is locked, you must be Staff+ to edit them.\n`other_names` & `urls` are silently truncated to 25 entries.\n`notes` is silently truncated to the wiki page limit (250,000).\nIndividual `other_names` are silently truncated to 100 characters.\nIf an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artists-artists\\#update artists#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artists-artists\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"artists#update\")\n async update(idOrName: string | number, options: UpdateArtistOptions): Promise<null> {\n return artists_update({\n client: this.client,\n path: { idOrName },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ArtistUrl as ArtistUrlData } from \"../generated/types.js\";\n\ninterface ArtistUrl extends ArtistUrlData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ArtistUrl ArtistUrl}\n *\n * @see {@link https://e621.wiki/#model-ArtistUrl Documentation} for more details.\n */\n@Schema(\"ArtistUrl\")\nclass ArtistUrl extends Base<ArtistUrlData> {}\n\nexport default ArtistUrl;\n", "import { artistUrls_index } from \"../generated/sdk.js\";\nimport ArtistUrl from \"../models/ArtistUrl.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ArtistUrlsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchArtistUrlsOptions extends TransformDataQueryToOptions<ArtistUrlsIndexData> {}\n\n/** @category Modules */\nexport default class ArtistUrls extends Base {\n static readonly moduleKey = \"artistUrls\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artist_URLs-artist_urls\\#index artist_urls#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artist_URLs-artist_urls\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"artist_urls#index\")\n async search(options?: SearchArtistUrlsOptions): Promise<Array<ArtistUrl>> {\n return artistUrls_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ArtistUrl));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ArtistVersion as ArtistVersionData } from \"../generated/types.js\";\n\ninterface ArtistVersion extends ArtistVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ArtistVersion ArtistVersion}\n *\n * @see {@link https://e621.wiki/#model-ArtistVersion Documentation} for more details.\n */\n@Schema(\"ArtistVersion\")\nclass ArtistVersion extends Base<ArtistVersionData> {}\n\nexport default ArtistVersion;\n", "import { artistVersions_index } from \"../generated/sdk.js\";\nimport ArtistVersion from \"../models/ArtistVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ArtistVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchArtistVersionsOptions extends TransformDataQueryToOptions<ArtistVersionsIndexData> {}\n\n/** @category Modules */\nexport default class ArtistVersions extends Base {\n static readonly moduleKey = \"artistVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Artist_Versions-artist_versions\\#index artist_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Artist_Versions-artist_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"artist_versions#index\")\n async search(options?: SearchArtistVersionsOptions): Promise<Array<ArtistVersion>> {\n return artistVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ArtistVersion));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { AvoidPosting as AvoidPostingData } from \"../generated/types.js\";\nimport type { UpdateAvoidPostingOptions } from \"../modules/AvoidPostings.js\";\n\ninterface AvoidPosting extends AvoidPostingData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-AvoidPosting AvoidPosting}\n *\n * @see {@link https://e621.wiki/#model-AvoidPosting Documentation} for more details.\n */\n@Schema(\"AvoidPosting\")\nclass AvoidPosting extends Base<AvoidPostingData> {\n /**\n\t *\n\t * Soft deletion. Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#delete avoid_postings#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#delete\")\n async delete(): Promise<null> {\n return this.e621.avoidPostings.delete(this.id);\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#destroy avoid_postings#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#destroy\")\n async destroy(): Promise<null> {\n return this.e621.avoidPostings.destroy(this.id);\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#undelete avoid_postings#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#undelete\")\n async undelete(): Promise<null> {\n return this.e621.avoidPostings.undelete(this.id);\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#update avoid_postings#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#update\")\n async update(options: UpdateAvoidPostingOptions): Promise<null> {\n return this.e621.avoidPostings.update(this.id, options);\n }\n}\n\nexport default AvoidPosting;\n", "import {\n avoidPostings_create,\n avoidPostings_delete,\n avoidPostings_destroy,\n avoidPostings_update,\n avoidPostings_show,\n avoidPostings_index,\n avoidPostings_undelete,\n} from \"../generated/sdk.js\";\nimport AvoidPosting from \"../models/AvoidPosting.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { AvoidPostingsCreateData, AvoidPostingsUpdateData, AvoidPostingsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateAvoidPostingOptions extends TransformDataBodyToOptions<AvoidPostingsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateAvoidPostingOptions extends TransformDataBodyToOptions<AvoidPostingsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchAvoidPostingsOptions extends TransformDataQueryToOptions<AvoidPostingsIndexData> {}\n\n/** @category Modules */\nexport default class AvoidPostings extends Base {\n static readonly moduleKey = \"avoidPostings\" as const;\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#create avoid_postings#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#create\")\n async create(options: CreateAvoidPostingOptions): Promise<AvoidPosting> {\n return avoidPostings_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, AvoidPosting));\n }\n\n /**\n\t *\n\t * Soft deletion. Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#delete avoid_postings#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#delete\")\n async delete(idOrName: string | number): Promise<null> {\n return avoidPostings_delete({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#destroy avoid_postings#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#destroy\")\n async destroy(idOrName: string | number): Promise<null> {\n return avoidPostings_destroy({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#show avoid_postings#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#show\")\n async get(idOrName: number | string): Promise<AvoidPosting | null> {\n return avoidPostings_show({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 200, false, AvoidPosting));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#index avoid_postings#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#index\")\n async search(options?: SearchAvoidPostingsOptions): Promise<Array<AvoidPosting>> {\n return avoidPostings_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, AvoidPosting));\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#undelete avoid_postings#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#undelete\")\n async undelete(idOrName: string | number): Promise<null> {\n return avoidPostings_undelete({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#update avoid_postings#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Postings-avoid_postings\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_postings#update\")\n async update(idOrName: string | number, options?: UpdateAvoidPostingOptions): Promise<null> {\n return avoidPostings_update({\n client: this.client,\n path: { idOrName },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { AvoidPostingVersion as AvoidPostingVersionData } from \"../generated/types.js\";\n\ninterface AvoidPostingVersion extends AvoidPostingVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-AvoidPostingVersion AvoidPostingVersion}\n *\n * @see {@link https://e621.wiki/#model-AvoidPostingVersion Documentation} for more details.\n */\n@Schema(\"AvoidPostingVersion\")\nclass AvoidPostingVersion extends Base<AvoidPostingVersionData> {}\n\nexport default AvoidPostingVersion;\n", "import { avoidPostingVersions_index } from \"../generated/sdk.js\";\nimport AvoidPostingVersion from \"../models/AvoidPostingVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { AvoidPostingVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchAvoidPostingVersionsOptions extends TransformDataQueryToOptions<AvoidPostingVersionsIndexData> {}\n\n/** @category Modules */\nexport default class AvoidPostingVersions extends Base {\n static readonly moduleKey = \"avoidPostingVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Avoid_Posting_Versions-avoid_posting_versions\\#index avoid_posting_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Avoid_Posting_Versions-avoid_posting_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"avoid_posting_versions#index\")\n async search(options?: SearchAvoidPostingVersionsOptions): Promise<Array<AvoidPostingVersion>> {\n return avoidPostingVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => res.data?.map(d => new AvoidPostingVersion(this.e621, d)) ?? []);\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Ban as BanData } from \"../generated/types.js\";\n\ninterface Ban extends BanData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Ban Ban}\n *\n * @see {@link https://e621.wiki/#model-Ban Documentation} for more details.\n */\n@Schema(\"Ban\")\nclass Ban extends Base<BanData> {}\n\nexport default Ban;\n", "import { bans_show, bans_index } from \"../generated/sdk.js\";\nimport Ban from \"../models/Ban.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { BansIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchBansOptions extends TransformDataQueryToOptions<BansIndexData> {}\n\n/** @category Modules */\nexport default class Bans extends Base {\n static readonly moduleKey = \"bans\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bans-bans\\#show bans#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bans-bans\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"bans#show\")\n async get(id: number): Promise<Ban | null> {\n return bans_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Ban));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bans-bans\\#index bans#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bans-bans\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"bans#index\")\n async search(options?: SearchBansOptions): Promise<Array<Ban>> {\n return bans_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Ban));\n }\n}\n", "import { type ExtractValue, OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Blip as BlipData, BlipsWarningData } from \"../generated/types.js\";\nimport type { UpdateBlipOptions, BlipsWarningResponse } from \"../modules/Blips.js\";\n\ninterface Blip extends BlipData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Blip Blip}\n *\n * @see {@link https://e621.wiki/#model-Blip Documentation} for more details.\n */\n@Schema(\"Blip\")\nclass Blip extends Base<BlipData> {\n /**\n\t *\n\t * Soft deletion. You must be the creator or Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#delete blips#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"blips#delete\")\n async delete(): Promise<string> {\n return this.e621.blips.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#destroy blips#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"blips#destroy\")\n async destroy(): Promise<null> {\n return this.e621.blips.destroy(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#warning blips#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"blips#warning\")\n async mark(type: ExtractValue<\"record_type\", BlipsWarningData>): Promise<BlipsWarningResponse> {\n return this.e621.blips.mark(this.id, type);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#undelete blips#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"blips#undelete\")\n async undelete(): Promise<string> {\n return this.e621.blips.undelete(this.id);\n }\n\n /**\n\t *\n\t * Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#update blips#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"blips#update\")\n async update(options: UpdateBlipOptions): Promise<null> {\n return this.e621.blips.update(this.id, options);\n }\n}\n\nexport default Blip;\n", "import {\n blips_create,\n blips_destroy,\n blips_update,\n blips_show,\n blips_delete,\n blips_warning,\n blips_index,\n blips_undelete,\n} from \"../generated/sdk.js\";\nimport Blip from \"../models/Blip.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type {\n BlipsCreateData,\n BlipsUpdateData,\n BlipsWarningResponses,\n BlipsIndexData,\n WarningRecordType,\n} from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchBlipsOptions extends TransformDataQueryToOptions<BlipsIndexData> {}\n/** @category Modules/Types */\nexport interface CreateBlipOptions extends TransformDataBodyToOptions<BlipsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateBlipOptions extends TransformDataBodyToOptions<BlipsUpdateData> {}\n/** @category Modules/Types */\nexport interface BlipsWarningResponse extends GetResponse<BlipsWarningResponses, 200> {}\n\n/** @category Modules */\nexport default class Blips extends Base {\n static readonly moduleKey = \"blips\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#create blips#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"blips#create\")\n async create(options: CreateBlipOptions): Promise<Blip> {\n return blips_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Blip));\n }\n\n /**\n\t *\n\t * Soft deletion. You must be the creator or Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#delete blips#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"blips#delete\")\n async delete(id: number): Promise<string> {\n return blips_delete({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#destroy blips#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"blips#destroy\")\n async destroy(id: number): Promise<null> {\n return blips_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#show blips#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"blips#show\")\n async get(id: number): Promise<Blip | null> {\n return blips_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Blip));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#warning blips#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"blips#warning\")\n async mark(id: number, type: WarningRecordType[\"record_type\"]): Promise<BlipsWarningResponse> {\n return blips_warning({\n client: this.client,\n path: { id },\n body: { record_type: type },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#index blips#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"blips#index\")\n async search(options?: SearchBlipsOptions): Promise<Array<Blip>> {\n return blips_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Blip));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#undelete blips#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"blips#undelete\")\n async undelete(id: number): Promise<string> {\n return blips_undelete({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Blips-blips\\#update blips#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Blips-blips\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"blips#update\")\n async update(id: number, options: UpdateBlipOptions): Promise<null> {\n return blips_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { BulkUpdateRequest as BulkUpdateRequestData } from \"../generated/types.js\";\nimport type { UpdateBulkUpdateRequestOptions } from \"../modules/BulkUpdateRequests.js\";\n\ninterface BulkUpdateRequest extends BulkUpdateRequestData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-BulkUpdateRequest BulkUpdateRequest}\n *\n * @see {@link https://e621.wiki/#model-BulkUpdateRequest Documentation} for more details.\n */\n@Schema(\"BulkUpdateRequest\")\nclass BulkUpdateRequest extends Base<BulkUpdateRequestData> {\n /**\n\t *\n\t * Must be Admin+.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#approve bulk_update_requests#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#approve\")\n async approve(): Promise<null> {\n return this.e621.bulkUpdateRequests.approve(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the BUR, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#destroy bulk_update_requests#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#destroy\")\n async reject(): Promise<null> {\n return this.e621.bulkUpdateRequests.reject(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the BUR, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#update bulk_update_requests#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#update\")\n async update(options: UpdateBulkUpdateRequestOptions): Promise<null> {\n return this.e621.bulkUpdateRequests.update(this.id, options);\n }\n}\n\nexport default BulkUpdateRequest;\n", "import {\n bulkUpdateRequests_approve,\n bulkUpdateRequests_create,\n bulkUpdateRequests_update,\n bulkUpdateRequests_show,\n bulkUpdateRequests_destroy,\n bulkUpdateRequests_index,\n} from \"../generated/sdk.js\";\nimport BulkUpdateRequest from \"../models/BulkUpdateRequest.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { BulkUpdateRequestsCreateData, BulkUpdateRequestsUpdateData, BulkUpdateRequestsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchBulkUpdateRequestsOptions extends TransformDataQueryToOptions<BulkUpdateRequestsIndexData> {}\n/** @category Modules/Types */\nexport interface CreateBulkUpdateRequestOptions extends TransformDataBodyToOptions<BulkUpdateRequestsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateBulkUpdateRequestOptions extends TransformDataBodyToOptions<BulkUpdateRequestsUpdateData> {}\n\n/** @category Modules */\nexport default class BulkUpdateRequests extends Base {\n static readonly moduleKey = \"bulkUpdateRequests\" as const;\n /**\n\t *\n\t * Must be Admin+.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#approve bulk_update_requests#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#approve\")\n async approve(id: number): Promise<null> {\n return bulkUpdateRequests_approve({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#create bulk_update_requests#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#create\")\n async create(options: CreateBulkUpdateRequestOptions): Promise<BulkUpdateRequest> {\n return bulkUpdateRequests_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, BulkUpdateRequest));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#show bulk_update_requests#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#show\")\n async get(id: number): Promise<BulkUpdateRequest | null> {\n return bulkUpdateRequests_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, BulkUpdateRequest));\n }\n\n /**\n\t *\n\t * You must be the creator of the BUR, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#destroy bulk_update_requests#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#destroy\")\n async reject(id: number): Promise<null> {\n return bulkUpdateRequests_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#index bulk_update_requests#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#index\")\n async search(options?: SearchBulkUpdateRequestsOptions): Promise<Array<BulkUpdateRequest>> {\n return bulkUpdateRequests_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, BulkUpdateRequest));\n }\n\n /**\n\t *\n\t * You must be the creator of the BUR, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#update bulk_update_requests#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Bulk_Update_Requests-bulk_update_requests\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"bulk_update_requests#update\")\n async update(id: number, options: UpdateBulkUpdateRequestOptions): Promise<null> {\n return bulkUpdateRequests_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { CommentVotesCreateResponse } from \"../modules/CommentVotes.js\";\nimport { type ExtractValue, OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Comment as CommentData, CommentVotesCreateData, CommentsWarningData } from \"../generated/types.js\";\nimport type { UpdateCommentOptions, CommentsWarningResponse } from \"../modules/Comments.js\";\n\ninterface Comment extends CommentData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Comment Comment}\n *\n * @see {@link https://e621.wiki/#model-Comment Documentation} for more details.\n */\n@Schema(\"Comment\")\nclass Comment extends Base<CommentData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#create comment_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#create\")\n async createVote(score: ExtractValue<\"score\", CommentVotesCreateData>, no_unvote?: boolean): Promise<CommentVotesCreateResponse> {\n return this.e621.commentVotes.create(this.id, score, no_unvote);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#destroy comments#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"comments#destroy\")\n async delete(): Promise<null> {\n return this.e621.comments.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#hide comments#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"comments#hide\")\n async hide(): Promise<Comment> {\n return this.e621.comments.hide(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#warning comments#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"comments#warning\")\n async mark(type: ExtractValue<\"record_type\", CommentsWarningData>): Promise<CommentsWarningResponse> {\n return this.e621.comments.mark(this.id, type);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#unhide comments#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"comments#unhide\")\n async unhide(): Promise<Comment> {\n return this.e621.comments.unhide(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy comment_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#destroy\")\n async unvote(): Promise<null> {\n return this.e621.commentVotes.unvote(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#update comments#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"comments#update\")\n async update(options: UpdateCommentOptions): Promise<null> {\n return this.e621.comments.update(this.id, options);\n }\n}\n\nexport default Comment;\n", "import {\n comments_create,\n comments_destroy,\n comments_update,\n comments_show,\n comments_hide,\n comments_warning,\n comments_index,\n comments_unhide,\n} from \"../generated/sdk.js\";\nimport Comment from \"../models/Comment.js\";\nimport {\n OperationID,\n type ExtractValue,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n GetResponse,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type {\n CommentsCreateData,\n CommentsUpdateData,\n CommentsWarningData,\n CommentsWarningResponses,\n CommentsIndexData,\n} from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchCommentsOptions extends TransformDataQueryToOptions<CommentsIndexData> {}\n/** @category Modules/Types */\nexport interface CreateCommentOptions extends TransformDataBodyToOptions<CommentsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateCommentOptions extends TransformDataBodyToOptions<CommentsUpdateData> {}\n/** @category Modules/Types */\nexport interface CommentsWarningResponse extends GetResponse<CommentsWarningResponses, 200> {}\n\n/** @category Modules */\nexport default class Comments extends Base {\n static readonly moduleKey = \"comments\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#create comments#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"comments#create\")\n async create(options: CreateCommentOptions): Promise<Comment> {\n return comments_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Comment));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#destroy comments#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"comments#destroy\")\n async delete(id: number): Promise<null> {\n return comments_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * If the comment is hidden, you must be the creator or Staff+ to see it.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#show comments#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"comments#show\")\n async get(id: number): Promise<Comment | null> {\n return comments_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Comment));\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#hide comments#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"comments#hide\")\n async hide(id: number): Promise<Comment> {\n return comments_hide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Comment));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#warning comments#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"comments#warning\")\n async mark(id: number, type: ExtractValue<\"record_type\", CommentsWarningData>): Promise<CommentsWarningResponse> {\n return comments_warning({\n client: this.client,\n path: { id },\n body: { record_type: type },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * For searching comments, group_by=comment must be set.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#index comments#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"comments#index\")\n async search(options?: SearchCommentsOptions): Promise<Array<Comment>> {\n return comments_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Comment));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#unhide comments#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"comments#unhide\")\n async unhide(id: number): Promise<Comment> {\n return comments_unhide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Comment));\n }\n\n /**\n\t *\n\t * You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comments-comments\\#update comments#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comments-comments\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"comments#update\")\n async update(id: number, options: UpdateCommentOptions): Promise<null> {\n return comments_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { DbExport as DBExportData } from \"../generated/types.js\";\n\ninterface DBExport extends DBExportData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-DBExport DBExport}\n *\n * @see {@link https://e621.wiki/#model-DBExport Documentation} for more details.\n */\n@Schema(\"DBExport\")\nclass DBExport extends Base<DBExportData> {}\n\nexport default DBExport;\n", "import { dbExports_index } from \"../generated/sdk.js\";\nimport DBExport from \"../models/DbExport.js\";\nimport { OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules */\nexport default class DBExports extends Base {\n static readonly moduleKey = \"dbExports\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-System-db_exports\\#index db_exports#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-System-db_exports\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"db_exports#index\")\n async get(): Promise<Array<DBExport>> {\n return dbExports_index({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true, DBExport));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { DMail as DMailData } from \"../generated/types.js\";\n\ninterface DMail extends DMailData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-DMail DMail}\n *\n * @see {@link https://e621.wiki/#model-DMail Documentation} for more details.\n */\n@Schema(\"DMail\")\nclass DMail extends Base<DMailData> {\n /**\n\t *\n\t * Deleting simply hides your copy of the dmail.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#destroy dmails#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#destroy\")\n async delete(): Promise<null> {\n return this.e621.dmails.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_read dmails#mark_as_read}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_read Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#mark_as_read\")\n async markRead(): Promise<null> {\n return this.e621.dmails.markRead(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_unread dmails#mark_as_unread}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_unread Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#mark_as_unread\")\n async markUnread(): Promise<null> {\n return this.e621.dmails.markUnread(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-maintenance/user/dmail_filters\\#update maintenance/user/dmail_filters#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-maintenance/user/dmail_filters\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/dmail_filters#update\")\n async updateFilter(words: string): Promise<null> {\n return this.e621.users.updateDmailFilter(this.id, words);\n }\n}\n\nexport default DMail;\n", "import {\n dmails_destroy,\n dmails_show,\n dmails_markAllAsRead,\n dmails_markAsRead,\n dmails_markAsUnread,\n dmails_index,\n} from \"../generated/sdk.js\";\nimport DMail from \"../models/DMail.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { DmailsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchDMailsOptions extends TransformDataQueryToOptions<DmailsIndexData> {}\n\n/** @category Modules */\nexport default class DMails extends Base {\n static readonly moduleKey = \"dmails\" as const;\n /**\n\t *\n\t * Deleting simply hides your copy of the dmail.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#destroy dmails#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#destroy\")\n async delete(id: number): Promise<null> {\n return dmails_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Fetching a dmail will not mark it as read. \nUnless the dmail is owned:\n- The current user must be staff and the dmail must be to or from the automod\n- The current user must be Moderator+ and a ticket must exist for the dmail\n- The current user must be Admin+ and the dmail must be to or from Admin+\n- The current user must be Staff and have a share key for the dmail\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#show dmails#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#show\")\n async get(id: number): Promise<DMail | null> {\n return dmails_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, DMail));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#mark_all_as_read dmails#mark_all_as_read}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#mark_all_as_read Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#mark_all_as_read\")\n async markAllRead(): Promise<null> {\n return dmails_markAllAsRead({\n client: this.client,\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_read dmails#mark_as_read}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_read Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#mark_as_read\")\n async markRead(id: number): Promise<null> {\n return dmails_markAsRead({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_unread dmails#mark_as_unread}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#mark_as_unread Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#mark_as_unread\")\n async markUnread(id: number): Promise<null> {\n return dmails_markAsUnread({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-dmails\\#index dmails#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-dmails\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"dmails#index\")\n async search(options?: SearchDMailsOptions): Promise<Array<DMail>> {\n return dmails_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, DMail));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { EditHistory as EditHistoryData } from \"../generated/types.js\";\n\ninterface EditHistory extends EditHistoryData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-EditHistory EditHistory}\n *\n * @see {@link https://e621.wiki/#model-EditHistory Documentation} for more details.\n */\n@Schema(\"EditHistory\")\nclass EditHistory extends Base<EditHistoryData> {}\n\nexport default EditHistory;\n", "import { editHistories_show, editHistories_index } from \"../generated/sdk.js\";\nimport EditHistory from \"../models/EditHistory.js\";\nimport { OperationID, type ExtractValue, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { EditHistoriesShowData, EditHistoriesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchEditHistoriesOptions extends TransformDataQueryToOptions<EditHistoriesIndexData> {}\n\n/** @category Modules */\nexport default class EditHistories extends Base {\n static readonly moduleKey = \"editHistories\" as const;\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Edit_Histories-edit_histories\\#show edit_histories#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Edit_Histories-edit_histories\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"edit_histories#show\")\n async get(id: number, type: ExtractValue<\"type\", EditHistoriesShowData>): Promise<Array<EditHistory> | null> {\n return editHistories_show({\n client: this.client,\n path: { id },\n query: { type },\n }).then(res => this._handleResponse(res, 200, false, EditHistory));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Edit_Histories-edit_histories\\#index edit_histories#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Edit_Histories-edit_histories\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"edit_histories#index\")\n async search(options?: SearchEditHistoriesOptions): Promise<Array<EditHistory>> {\n return editHistories_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, EditHistory));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { EmailBlacklist as EmailBlacklistData } from \"../generated/types.js\";\n\ninterface EmailBlacklist extends EmailBlacklistData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-EmailBlacklist EmailBlacklist}\n *\n * @see {@link https://e621.wiki/#model-EmailBlacklist Documentation} for more details.\n */\n@Schema(\"EmailBlacklist\")\nclass EmailBlacklist extends Base<EmailBlacklistData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#destroy email_blacklists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"email_blacklists#destroy\")\n async delete(): Promise<null> {\n return this.e621.emailBlacklists.delete(this.id);\n }\n}\n\nexport default EmailBlacklist;\n", "import { emailBlacklists_create, emailBlacklists_destroy, emailBlacklists_index } from \"../generated/sdk.js\";\nimport EmailBlacklist from \"../models/EmailBlacklist.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { EmailBlacklistsCreateData, EmailBlacklistsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateEmailBlacklistOptions extends TransformDataBodyToOptions<EmailBlacklistsCreateData> {}\n/** @category Modules/Types */\nexport interface SearchEmailBlacklistsOptions extends TransformDataQueryToOptions<EmailBlacklistsIndexData> {}\n\n/** @category Modules */\nexport default class EmailBlacklists extends Base {\n static readonly moduleKey = \"emailBlacklists\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#create email_blacklists#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"email_blacklists#create\")\n async create(options: CreateEmailBlacklistOptions): Promise<EmailBlacklist> {\n return emailBlacklists_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, EmailBlacklist));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#destroy email_blacklists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"email_blacklists#destroy\")\n async delete(id: number): Promise<null> {\n return emailBlacklists_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#index email_blacklists#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Email_Blacklists-email_blacklists\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"email_blacklists#index\")\n async search(options?: SearchEmailBlacklistsOptions): Promise<Array<EmailBlacklist>> {\n return emailBlacklists_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, EmailBlacklist));\n }\n}\n", "import { PostVotesCreateResponse } from \"../../modules/PostVotes.js\";\nimport { type ExtractValue, OperationID } from \"../../util.js\";\nimport Base from \"../Base.js\";\n\nimport type { PostVotesCreateData } from \"../../generated/types.js\";\nimport type { FavoritesCreateResponse, FavoritesDestroyResponse } from \"../../modules/Favorites.js\";\nimport type { DisapprovePostOptions } from \"../../modules/PostDisapprovals.js\";\nimport type { FlagPostOptions } from \"../../modules/PostFlags.js\";\nimport type { NoV2Options, PostFormat, PostFormatOptions } from \"../../modules/posts/Format.js\";\nimport type {\n DeletePostOptions,\n GetPostInSequenceOptions,\n ListPostFavoritesOptions,\n MarkPostAsTranslatedOptions,\n MovePostFavoritesOptions,\n PostPreviousOwner,\n RecommendedPostsOptions,\n RecommendedPostsResult,\n ReownPostOptions,\n UpdatePostIqdbOptions,\n UpdatePostOptions,\n} from \"../../modules/Posts.js\";\nimport type MinimalUser from \"../MinimalUser.js\";\nimport type Post from \"../Post.js\";\nimport type PostDisapproval from \"../PostDisapproval.js\";\nimport type PostFlag from \"../PostFlag.js\";\n\n/** @category Models */\nexport default abstract class PostActions<T extends { id: number }, PF extends PostFormatOptions = NoV2Options> extends Base<T, PF> {\n declare id: number;\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#ai_check staff/post/posts#ai_check}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#ai_check Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#ai_check\")\n async aiCheck(): Promise<string> {\n return this.e621.posts.aiCheck(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#create staff/post/approvals#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/approvals#create\")\n async approve(): Promise<null> {\n return this.e621.postApprovals.create(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#copy_notes posts#copy_notes}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#copy_notes Documentation} for more details.\n\t */\n\t@OperationID(\"posts#copy_notes\")\n async copyNotes(other_post_id: number): Promise<null> {\n return this.e621.posts.copyNotes(this.id, other_post_id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#create post_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#create\")\n async createVote(score: ExtractValue<\"score\", PostVotesCreateData>, no_unvote?: boolean): Promise<PostVotesCreateResponse> {\n return this.e621.postVotes.create(this.id, score, no_unvote);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. `commit=Delete` must be set.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#delete staff/post/posts#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#delete\")\n async delete(options: DeletePostOptions): Promise<unknown> {\n return this.e621.posts.delete(this.id, options);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#create staff/post/disapprovals#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/disapprovals#create\")\n async disapprove(options: DisapprovePostOptions): Promise<PostDisapproval> {\n return this.e621.postDisapprovals.create({ ...options, post_id: this.id });\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission and be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#expunge staff/post/posts#expunge}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#expunge Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#expunge\")\n async expunge(reason: string): Promise<Post<PF>> {\n return this.e621.posts.expunge(this.id, reason);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Favorites-favorites\\#create favorites#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Favorites-favorites\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"favorites#create\")\n async favorite(): Promise<FavoritesCreateResponse> {\n return this.e621.favorites.create(this.id);\n }\n\n /**\n\t *\n\t * You must be the user or Moderator+ to see users that have their favorites hidden.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\\#index post_favorites#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_favorites#index\")\n async favorites(options: ListPostFavoritesOptions): Promise<Array<MinimalUser>> {\n return this.e621.posts.favorites(this.id, options);\n }\n\n /**\n\t *\n\t * Will error if post_id is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#create post_flags#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#create\")\n async flag(options: FlagPostOptions): Promise<PostFlag> {\n return this.e621.postFlags.create({ ...options, post_id: this.id });\n }\n\n /**\n\t *\n\t * Will error if no body is provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#mark_as_translated posts#mark_as_translated}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#mark_as_translated Documentation} for more details.\n\t */\n\t@OperationID(\"posts#mark_as_translated\")\n async markTranslated<const O extends MarkPostAsTranslatedOptions = PF>(options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n return this.e621.posts.markTranslated(this.id, options);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. `commit=Submit`` must be set.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#move_favorites staff/post/posts#move_favorites}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#move_favorites Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#move_favorites\")\n async moveFavorites(options: MovePostFavoritesOptions): Promise<unknown> {\n return this.e621.posts.moveFavorites(this.id, options);\n }\n\n /**\n\t *\n\t * You must be an Approver\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#previous_owners staff/post/posts#previous_owners}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#previous_owners Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#previous_owners\")\n async previousOwners(): Promise<Array<PostPreviousOwner>> {\n return this.e621.posts.previousOwners(this.id);\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\\#artist post_recommendations#artist}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\\#artist Documentation} for more details.\n\t */\n\t@OperationID(\"post_recommendations#artist\")\n async recommendedByArtist(options?: RecommendedPostsOptions): Promise<RecommendedPostsResult<PF>> {\n return this.e621.posts.recommendedByArtist(this.id, options);\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\\#tags post_recommendations#tags}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\\#tags Documentation} for more details.\n\t */\n\t@OperationID(\"post_recommendations#tags\")\n async recommendedByTags(options?: RecommendedPostsOptions): Promise<RecommendedPostsResult<PF>> {\n return this.e621.posts.recommendedByTags(this.id, options);\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_thumbnails staff/post/posts#regenerate_thumbnails}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_thumbnails Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#regenerate_thumbnails\")\n async regenerateThumbnails(): Promise<Post<PF>> {\n return this.e621.posts.regenerateThumbnails(this.id);\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_videos staff/post/posts#regenerate_videos}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_videos Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#regenerate_videos\")\n async regenerateVideos(): Promise<null> {\n return this.e621.posts.regenerateVideos(this.id);\n }\n\n /**\n\t *\n\t * You must have be Janitor+ and an Approver\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#reowner staff/post/posts#reowner}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#reowner Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#reowner\")\n async reown(options: ReownPostOptions): Promise<string> {\n return this.e621.posts.reown(this.id, options);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#revert posts#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"posts#revert\")\n async revert(version_id: number): Promise<null> {\n return this.e621.posts.revert(this.id, version_id);\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#show_seq posts#show_seq}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#show_seq Documentation} for more details.\n\t */\n\t@OperationID(\"posts#show_seq\")\n async sequence<const O extends GetPostInSequenceOptions = PF>(options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n return this.e621.posts.sequence(this.id, options);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. The response does not differ for success or failure.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy staff/post/approvals#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/approvals#destroy\")\n async unapprove(): Promise<null> {\n return this.e621.postApprovals.delete(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#undelete staff/post/posts#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#undelete\")\n async undelete(): Promise<Post<PF>> {\n return this.e621.posts.undelete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Favorites-favorites\\#destroy favorites#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Favorites-favorites\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"favorites#destroy\")\n async unfavorite(): Promise<FavoritesDestroyResponse> {\n return this.e621.favorites.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#destroy\")\n async unvote(): Promise<null> {\n return this.e621.postVotes.unvote(this.id);\n }\n\n /**\n\t *\n\t * Most errors are silently swallowed.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#update posts#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"posts#update\")\n async update<const O extends UpdatePostOptions = PF>(options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n return this.e621.posts.update(this.id, options);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#update_iqdb posts#update_iqdb}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#update_iqdb Documentation} for more details.\n\t */\n\t@OperationID(\"posts#update_iqdb\")\n async updateIqdb<const O extends UpdatePostIqdbOptions = PF>(options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n return this.e621.posts.updateIqdb(this.id, options);\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport PostActions from \"./posts/Actions.js\";\n\nimport type { BasicPost as PostData } from \"../generated/types.js\";\nimport type { NoV2Options, PostFormatOptions } from \"../modules/posts/Format.js\";\n\ninterface BasicPost extends PostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-BasicPost BasicPost}\n *\n * @see {@link https://e621.wiki/#model-BasicPost Documentation} for more details.\n */\n@Schema(\"BasicPost\")\nclass BasicPost<PF extends PostFormatOptions = NoV2Options> extends PostActions<PostData, PF> {}\n\nexport default BasicPost;\n", "import { Schema } from \"../util.js\";\n\nimport PostActions from \"./posts/Actions.js\";\n\nimport type { ExtendedPost as PostData } from \"../generated/types.js\";\nimport type { NoV2Options, PostFormatOptions } from \"../modules/posts/Format.js\";\n\ninterface ExtendedPost extends PostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ExtendedPost ExtendedPost}\n *\n * @see {@link https://e621.wiki/#model-ExtendedPost Documentation} for more details.\n */\n@Schema(\"ExtendedPost\")\nclass ExtendedPost<PF extends PostFormatOptions = NoV2Options> extends PostActions<PostData, PF> {}\n\nexport default ExtendedPost;\n", "import { Schema } from \"../util.js\";\n\nimport PostActions from \"./posts/Actions.js\";\n\nimport type { LegacyPost as PostData } from \"../generated/types.js\";\nimport type { NoV2Options, PostFormatOptions } from \"../modules/posts/Format.js\";\n\ninterface Post extends PostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-LegacyPost LegacyPost}\n *\n * @see {@link https://e621.wiki/#model-LegacyPost Documentation} for more details.\n */\n@Schema(\"LegacyPost\")\nclass Post<PF extends PostFormatOptions = NoV2Options> extends PostActions<PostData, PF> {}\n\nexport default Post;\n", "import { Schema } from \"../util.js\";\n\nimport PostActions from \"./posts/Actions.js\";\n\nimport type { ThumbnailPost as PostData } from \"../generated/types.js\";\nimport type { NoV2Options, PostFormatOptions } from \"../modules/posts/Format.js\";\n\ninterface ThumbnailPost extends PostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ThumbnailPost ThumbnailPost}\n *\n * @see {@link https://e621.wiki/#model-ThumbnailPost Documentation} for more details.\n */\n@Schema(\"ThumbnailPost\")\nclass ThumbnailPost<PF extends PostFormatOptions = NoV2Options> extends PostActions<PostData, PF> {}\n\nexport default ThumbnailPost;\n", "import BasicPost from \"../../models/BasicPost.js\";\nimport ExtendedPost from \"../../models/ExtendedPost.js\";\nimport Post from \"../../models/Post.js\";\nimport ThumbnailPost from \"../../models/ThumbnailPost.js\";\n\nimport type {\n BasicPost as BasicPostData,\n ExtendedPost as ExtendedPostData,\n LegacyPost as LegacyPostData,\n ThumbnailPost as ThumbnailPostData,\n} from \"../../generated/types.js\";\nimport type E621 from \"../../index.js\";\n\n/** @category Modules/Types */\nexport type PostV2Mode = \"basic\" | \"extended\" | \"thumbnail\";\n/** @category Modules/Types */\nexport type AnyPostData = BasicPostData | ExtendedPostData | LegacyPostData | ThumbnailPostData;\n/** @category Modules/Types */\nexport type AnyPost<PF extends PostFormatOptions = NoV2Options> = BasicPost<PF> | ExtendedPost<PF> | Post<PF> | ThumbnailPost<PF>;\n\n/**\n * The shape of a v2/mode default - bounds the `defaultPostFormat` {@link Options} and every generic\n * method/model that resolves its return type from it.\n *\n * @category Modules/Types\n */\nexport interface PostFormatOptions {\n mode?: PostV2Mode;\n v2?: boolean;\n}\n\n/** @category Modules/Types */\nexport type PostFormat<V2 extends boolean | undefined, Mode extends PostV2Mode | undefined, PF extends PostFormatOptions = NoV2Options>\n = V2 extends true\n ? Mode extends \"extended\" ? ExtendedPost<PF>\n : Mode extends \"thumbnail\" ? ThumbnailPost<PF>\n : BasicPost<PF>\n : Post<PF>;\n\n/** @category Modules/Types */\nexport type PostFormatV2Only<V2 extends boolean | undefined, PF extends PostFormatOptions = NoV2Options> = PostFormat<V2, undefined, PF>;\n\n/**\n * Default type argument for generic methods accepting v2/mode options, resolving {@link PostFormat} to the legacy `Post` model when no options are provided.\n *\n * @category Modules/Types\n */\nexport interface NoV2Options {\n mode?: undefined;\n v2?: undefined;\n}\n\nexport function wrapPost<V2 extends boolean | undefined, Mode extends PostV2Mode | undefined, PF extends PostFormatOptions = NoV2Options>(e621: E621<PF>, data: AnyPostData, v2: V2, mode: Mode): PostFormat<V2, Mode, PF> {\n if (v2 !== true) return new Post(e621, data as LegacyPostData) as PostFormat<V2, Mode, PF>;\n if (mode === \"extended\") return new ExtendedPost(e621, data as ExtendedPostData) as PostFormat<V2, Mode, PF>;\n if (mode === \"thumbnail\") return new ThumbnailPost(e621, data as ThumbnailPostData) as PostFormat<V2, Mode, PF>;\n return new BasicPost(e621, data as BasicPostData) as PostFormat<V2, Mode, PF>;\n}\n\nexport function wrapPosts<V2 extends boolean | undefined, Mode extends PostV2Mode | undefined, PF extends PostFormatOptions = NoV2Options>(e621: E621<PF>, data: Array<AnyPostData>, v2: V2, mode: Mode): Array<PostFormat<V2, Mode, PF>> {\n return data.map(item => wrapPost(e621, item, v2, mode));\n}\n", "import { favorites_create, favorites_index, favorites_destroy } from \"../generated/sdk.js\";\nimport { GetResponse, OperationID, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport { type AnyPostData, type NoV2Options, type PostFormat, type PostFormatOptions, wrapPosts } from \"./posts/Format.js\";\n\nimport type { Client } from \"../generated/client/types.js\";\nimport type { FavoritesCreateResponses, LegacyPost as LegacyPostData, FavoritesIndexData, FavoritesDestroyResponses } from \"../generated/types.js\";\nimport type E621 from \"../index.js\";\n\n/** @category Modules/Types */\nexport interface SearchFavoritesOptions extends TransformDataQueryToOptions<FavoritesIndexData> {}\n/** @category Modules/Types */\nexport interface FavoritesCreateResponse extends GetResponse<FavoritesCreateResponses, 201> {}\n/** @category Modules/Types */\nexport interface FavoritesDestroyResponse extends GetResponse<FavoritesDestroyResponses, 200> {}\n\n/** @category Modules */\nexport default class Favorites<PF extends PostFormatOptions = NoV2Options> extends Base<PF> {\n static readonly moduleKey = \"favorites\" as const;\n protected readonly defaultFormat: PF;\n /** @param defaultFormat - The v2/mode format to fall back to when `search()` is called without explicit v2/mode options. */\n constructor(e621: E621<PF> | undefined, client: Client, defaultFormat: PF = {} as PF) {\n super(e621, client);\n this.defaultFormat = defaultFormat;\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Favorites-favorites\\#create favorites#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Favorites-favorites\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"favorites#create\")\n async create(post_id: number): Promise<FavoritesCreateResponse> {\n return favorites_create({\n client: this.client,\n body: { post_id },\n }).then(res => this._handleResponse(res, 201, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Favorites-favorites\\#destroy favorites#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Favorites-favorites\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"favorites#destroy\")\n async delete(id: number): Promise<FavoritesDestroyResponse> {\n return favorites_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Favorites-favorites\\#index favorites#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Favorites-favorites\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"favorites#index\")\n async search<const O extends SearchFavoritesOptions = PF>(options?: O): Promise<Array<PostFormat<O[\"v2\"], O[\"mode\"], PF>>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return favorites_index({\n client: this.client,\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { posts: Array<LegacyPostData> }).posts) as Array<AnyPostData>;\n return wrapPosts(this.e621, raw, v2, mode) as Array<PostFormat<O[\"v2\"], O[\"mode\"], PF>>;\n });\n }\n}\n", "import { ForumPostVotesCreateResponse } from \"../modules/ForumPostVotes.js\";\nimport { type ExtractValue, OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport ForumPostVote from \"./ForumPostVote.js\";\n\nimport type { ForumPostVotesCreateData, ForumPost as ForumPostData, ForumPostsWarningData } from \"../generated/types.js\";\nimport type { UpdateForumPostOptions, ForumPostsWarningResponse } from \"../modules/ForumPosts.js\";\n\ninterface ForumPost extends ForumPostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ForumPost ForumPost}\n *\n * @see {@link https://e621.wiki/#model-ForumPost Documentation} for more details.\n */\n@Schema(\"ForumPost\")\nclass ForumPost extends Base<ForumPostData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#destroy forum_posts#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#destroy\")\n async delete(): Promise<null> {\n return this.e621.forumPosts.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#hide forum_posts#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#hide\")\n async hide(): Promise<ForumPost> {\n return this.e621.forumPosts.hide(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#warning forum_posts#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#warning\")\n async mark(type: ExtractValue<\"record_type\", ForumPostsWarningData>): Promise<ForumPostsWarningResponse> {\n return this.e621.forumPosts.mark(this.id, type);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#unhide forum_posts#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#unhide\")\n async unhide(): Promise<ForumPost> {\n return this.e621.forumPosts.unhide(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy forum_post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#destroy\")\n async unvote(): Promise<null> {\n return this.e621.forumPostVotes.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#update forum_posts#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#update\")\n async update(options: UpdateForumPostOptions): Promise<null> {\n return this.e621.forumPosts.update(this.id, options);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#create forum_post_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#create\")\n async vote(score: ExtractValue<\"score\", ForumPostVotesCreateData>): Promise<ForumPostVotesCreateResponse> {\n return this.e621.forumPostVotes.create(this.id, score);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#show forum_post_votes#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#show\")\n async votes(): Promise<Array<ForumPostVote>> {\n return this.e621.forumPostVotes.list(this.id);\n }\n}\n\nexport default ForumPost;\n", "import {\n forumPosts_create,\n forumPosts_destroy,\n forumPosts_update,\n forumPosts_show,\n forumPosts_hide,\n forumPosts_warning,\n forumPosts_index,\n forumPosts_unhide,\n} from \"../generated/sdk.js\";\nimport ForumPost from \"../models/ForumPost.js\";\nimport {\n OperationID,\n type ExtractValue,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n GetResponse,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type {\n ForumPostsCreateData,\n ForumPostsUpdateData,\n ForumPostsWarningData,\n ForumPostsWarningResponses,\n ForumPostsIndexData,\n} from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateForumPostOptions extends TransformDataBodyToOptions<ForumPostsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateForumPostOptions extends TransformDataBodyToOptions<ForumPostsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchForumPostsOptions extends TransformDataQueryToOptions<ForumPostsIndexData> {}\n/** @category Modules/Types */\nexport interface ForumPostsWarningResponse extends GetResponse<ForumPostsWarningResponses, 200> {}\n\n/** @category Modules */\nexport default class ForumPosts extends Base {\n static readonly moduleKey = \"forumPosts\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#create forum_posts#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#create\")\n async create(options: CreateForumPostOptions): Promise<ForumPost> {\n return forumPosts_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, ForumPost));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#destroy forum_posts#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#destroy\")\n async delete(id: number): Promise<null> {\n return forumPosts_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * If the forum post is hidden, you must be the creator or Moderator+ to see it.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#show forum_posts#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#show\")\n async get(id: number): Promise<ForumPost | null> {\n return forumPosts_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, ForumPost));\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#hide forum_posts#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#hide\")\n async hide(id: number): Promise<ForumPost> {\n return forumPosts_hide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumPost));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#warning forum_posts#warning}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#warning Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#warning\")\n async mark(id: number, type: ExtractValue<\"record_type\", ForumPostsWarningData>): Promise<ForumPostsWarningResponse> {\n return forumPosts_warning({\n client: this.client,\n path: { id },\n body: { record_type: type },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#index forum_posts#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#index\")\n async search(options?: SearchForumPostsOptions): Promise<Array<ForumPost>> {\n return forumPosts_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ForumPost));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#unhide forum_posts#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#unhide\")\n async unhide(id: number): Promise<ForumPost> {\n return forumPosts_unhide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumPost));\n }\n\n /**\n\t *\n\t * You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#update forum_posts#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Posts-forum_posts\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"forum_posts#update\")\n async update(id: number, options: UpdateForumPostOptions): Promise<null> {\n return forumPosts_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ForumTopic as ForumTopicData } from \"../generated/types.js\";\nimport type { UpdateForumTopicOptions } from \"../modules/ForumTopics.js\";\n\ninterface ForumTopic extends ForumTopicData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ForumTopic ForumTopic}\n *\n * @see {@link https://e621.wiki/#model-ForumTopic Documentation} for more details.\n */\n@Schema(\"ForumTopic\")\nclass ForumTopic extends Base<ForumTopicData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#destroy forum_topics#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#destroy\")\n async delete(): Promise<null> {\n return this.e621.forumTopics.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#hide forum_topics#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#hide\")\n async hide(): Promise<ForumTopic> {\n return this.e621.forumTopics.hide(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#subscribe forum_topics#subscribe}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#subscribe Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#subscribe\")\n async subscribe(): Promise<ForumTopic> {\n return this.e621.forumTopics.subscribe(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unhide forum_topics#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#unhide\")\n async unhide(): Promise<ForumTopic> {\n return this.e621.forumTopics.unhide(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unsubscribe forum_topics#unsubscribe}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unsubscribe Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#unsubscribe\")\n async unsubscribe(): Promise<ForumTopic> {\n return this.e621.forumTopics.unsubscribe(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#update forum_topics#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#update\")\n async update(options: UpdateForumTopicOptions): Promise<null> {\n return this.e621.forumTopics.update(this.id, options);\n }\n}\n\nexport default ForumTopic;\n", "import {\n forumTopics_create,\n forumTopics_destroy,\n forumTopics_update,\n forumTopics_show,\n forumTopics_hide,\n forumTopics_markAllAsRead,\n forumTopics_index,\n forumTopics_subscribe,\n forumTopics_unhide,\n forumTopics_unsubscribe,\n} from \"../generated/sdk.js\";\nimport ForumTopic from \"../models/ForumTopic.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ForumTopicsCreateData, ForumTopicsIndexData, ForumTopicsUpdateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateForumTopicOptions extends TransformDataBodyToOptions<ForumTopicsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateForumTopicOptions extends TransformDataBodyToOptions<ForumTopicsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchForumTopicsOptions extends TransformDataQueryToOptions<ForumTopicsIndexData> {}\n\n/** @category Modules */\nexport default class ForumTopics extends Base {\n static readonly moduleKey = \"forumTopics\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#create forum_topics#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#create\")\n async create(options: CreateForumTopicOptions): Promise<ForumTopic> {\n return forumTopics_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, ForumTopic));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#destroy forum_topics#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#destroy\")\n async delete(id: number): Promise<null> {\n return forumTopics_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * If the forum topic is hidden, you must be the creator or Moderator+ to see it.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#show forum_topics#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#show\")\n async get(id: number): Promise<ForumTopic | null> {\n return forumTopics_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, ForumTopic));\n }\n\n /**\n\t *\n\t * You must be the creator or Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#hide forum_topics#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#hide\")\n async hide(id: number): Promise<ForumTopic> {\n return forumTopics_hide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumTopic));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#mark_all_as_read forum_topics#mark_all_as_read}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#mark_all_as_read Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#mark_all_as_read\")\n async markAllRead(): Promise<null> {\n return forumTopics_markAllAsRead({\n client: this.client,\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#index forum_topics#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#index\")\n async search(options?: SearchForumTopicsOptions): Promise<Array<ForumTopic>> {\n return forumTopics_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ForumTopic));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#subscribe forum_topics#subscribe}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#subscribe Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#subscribe\")\n async subscribe(id: number): Promise<ForumTopic> {\n return forumTopics_subscribe({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumTopic));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unhide forum_topics#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#unhide\")\n async unhide(id: number): Promise<ForumTopic> {\n return forumTopics_unhide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumTopic));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unsubscribe forum_topics#unsubscribe}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#unsubscribe Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#unsubscribe\")\n async unsubscribe(id: number): Promise<ForumTopic> {\n return forumTopics_unsubscribe({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, ForumTopic));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#update forum_topics#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Topics-forum_topics\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"forum_topics#update\")\n async update(id: number, options: UpdateForumTopicOptions): Promise<null> {\n return forumTopics_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { health_index } from \"../generated/sdk.js\";\nimport { OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules */\nexport default class Health extends Base {\n static readonly moduleKey = \"health\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-System-health\\#index health#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-System-health\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"health#index\")\n async get(): Promise<string> {\n return health_index({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { HelpPage as HelpPageData } from \"../generated/types.js\";\nimport type { UpdateHelpPageOptions } from \"../modules/HelpPages.js\";\n\ninterface HelpPage extends HelpPageData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-HelpPage HelpPage}\n *\n * @see {@link https://e621.wiki/#model-HelpPage Documentation} for more details.\n */\n@Schema(\"HelpPage\")\nclass HelpPage extends Base<HelpPageData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#destroy help#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"help#destroy\")\n async delete(): Promise<null> {\n return this.e621.helpPages.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#update help#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"help#update\")\n async update(options: UpdateHelpPageOptions): Promise<null> {\n return this.e621.helpPages.update(this.id, options);\n }\n}\n\nexport default HelpPage;\n", "import {\n help_create,\n help_destroy,\n help_update,\n help_show,\n help_index,\n help_list,\n} from \"../generated/sdk.js\";\nimport HelpPage from \"../models/HelpPage.js\";\nimport { OperationID, type TransformDataBodyToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { HelpCreateData, HelpUpdateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateHelpPageOptions extends TransformDataBodyToOptions<HelpCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateHelpPageOptions extends TransformDataBodyToOptions<HelpUpdateData> {}\n\n/** @category Modules */\nexport default class HelpPages extends Base {\n static readonly moduleKey = \"helpPages\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#create help#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"help#create\")\n async create(options: CreateHelpPageOptions): Promise<HelpPage> {\n return help_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, HelpPage));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#destroy help#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"help#destroy\")\n async delete(id: number): Promise<null> {\n return help_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#show help#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"help#show\")\n async get(id: number | string): Promise<HelpPage | null> {\n return help_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, HelpPage));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#index help#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"help#index\")\n async landing(): Promise<HelpPage> {\n return help_index({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true, HelpPage));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#list help#list}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#list Documentation} for more details.\n\t */\n\t@OperationID(\"help#list\")\n async list(): Promise<Array<HelpPage>> {\n return help_list({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true, HelpPage));\n }\n\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Help_Pages-help\\#update help#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Help_Pages-help\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"help#update\")\n async update(id: number, options: UpdateHelpPageOptions): Promise<null> {\n return help_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { IpBan as IpBanData } from \"../generated/types.js\";\n\ninterface IpBan extends IpBanData {}\n/**\n * Due to a global filter, the ip_addr is not present no matter your user level.\n *\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-IpBan IpBan}\n *\n * @see {@link https://e621.wiki/#model-IpBan Documentation} for more details.\n */\n@Schema(\"IpBan\")\nclass IpBan extends Base<IpBanData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#destroy ip_bans#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"ip_bans#destroy\")\n async delete(): Promise<null> {\n return this.e621.ipBans.delete(this.id);\n }\n}\n\nexport default IpBan;\n", "import { ipBans_create, ipBans_destroy, ipBans_index } from \"../generated/sdk.js\";\nimport IpBan from \"../models/IpBan.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions, type TransformDataBodyToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { IpBansCreateData, IpBansIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateIpBanOptions extends TransformDataBodyToOptions<IpBansCreateData> {}\n/** @category Modules/Types */\nexport interface SearchIpBansOptions extends TransformDataQueryToOptions<IpBansIndexData> {}\n\n/** @category Modules */\nexport default class IpBans extends Base {\n static readonly moduleKey = \"ipBans\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#create ip_bans#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"ip_bans#create\")\n async create(options: CreateIpBanOptions): Promise<IpBan> {\n return ipBans_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, IpBan));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#destroy ip_bans#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"ip_bans#destroy\")\n async delete(id: number): Promise<null> {\n return ipBans_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#index ip_bans#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IP_Bans-ip_bans\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"ip_bans#index\")\n async search(options?: SearchIpBansOptions): Promise<Array<IpBan>> {\n return ipBans_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, IpBan));\n }\n}\n", "import { type IqdbPost as IqdbPostData } from \"../generated/types.js\";\nimport { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\ninterface IqdbPost extends IqdbPostData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-IqdbPost IqdbPost}\n *\n * @see {@link https://e621.wiki/#model-IqdbPost Documentation} for more details.\n */\n@Schema(\"IqdbPost\")\nclass IqdbPost extends Base<IqdbPostData> {}\n\nexport default IqdbPost;\n", "import { iqdbQueries_showPost, iqdbQueries_show } from \"../generated/sdk.js\";\nimport BasicPost from \"../models/BasicPost.js\";\nimport IqdbPost from \"../models/IqdbPost.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport { type NoV2Options, type PostFormatOptions, type PostFormatV2Only } from \"./posts/Format.js\";\n\nimport type { Client } from \"../generated/client/types.js\";\nimport type { BasicPost as BasicPostData, IqdbPost as IqdbPostData, IqdbQueriesShowPostData, IqdbQueriesShowData } from \"../generated/types.js\";\nimport type E621 from \"../index.js\";\n\n/** @category Modules/Types */\nexport interface QueryIqdbGetOptions extends TransformDataQueryToOptions<IqdbQueriesShowData> {}\n/** @category Modules/Types */\nexport interface QueryIqdbPostOptions extends TransformDataBodyToOptions<IqdbQueriesShowPostData> {\n v2?: boolean;\n}\n/** @category Modules/Types */\nexport interface IqdbResult<V2 extends boolean | undefined = undefined, PF extends PostFormatOptions = NoV2Options> {\n hash: string;\n post: PostFormatV2Only<V2, PF>;\n post_id: number;\n score: number;\n}\n\n/** @category Modules */\nexport default class IqdbQueries<PF extends PostFormatOptions = NoV2Options> extends Base<PF> {\n static readonly moduleKey = \"iqdb\" as const;\n protected readonly defaultFormat: PF;\n /** @param defaultFormat - The v2 format to fall back to when `get()`/`post()` are called without an explicit `v2` option. `mode` is ignored - IQDB only ever returns the basic v2 format. */\n constructor(e621: E621<PF> | undefined, client: Client, defaultFormat: PF = {} as PF) {\n super(e621, client);\n this.defaultFormat = defaultFormat;\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IQDB-iqdb_queries\\#show iqdb_queries#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IQDB-iqdb_queries\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"iqdb_queries#show\")\n async get<const O extends QueryIqdbGetOptions = PF>(options?: O): Promise<Array<IqdbResult<O[\"v2\"], PF>>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n return iqdbQueries_show({\n client: this.client,\n query: { ...(prefixKeys(options, \"search\", [\"v2\"]) ?? {}), v2 },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return data.map(d => ({\n hash: d.hash,\n post: (v2\n ? new BasicPost(this.e621, (d as { post: BasicPostData }).post)\n : new IqdbPost(this.e621 as unknown as E621, (d as { post: { posts: IqdbPostData } }).post.posts)) as PostFormatV2Only<O[\"v2\"], PF>,\n post_id: d.post_id,\n score: d.score,\n }));\n });\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-IQDB-iqdb_queries\\#show_post iqdb_queries#show_post}\n\t *\n\t * @see {@link https://e621.wiki/#operations-IQDB-iqdb_queries\\#show_post Documentation} for more details.\n\t */\n\t@OperationID(\"iqdb_queries#show_post\")\n async post<const O extends QueryIqdbPostOptions = PF>(options?: O): Promise<Array<IqdbResult<O[\"v2\"], PF>>> {\n const { v2: rawV2, ...body } = (options ?? {}) as QueryIqdbPostOptions;\n const v2 = rawV2 ?? this.defaultFormat.v2;\n return iqdbQueries_showPost({\n client: this.client,\n query: { v2 },\n body,\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return data.map(d => ({\n hash: d.hash,\n post: (v2\n ? new BasicPost(this.e621, (d as { post: BasicPostData }).post)\n : new IqdbPost(this.e621 as unknown as E621, (d as { post: { posts: IqdbPostData } }).post.posts)) as PostFormatV2Only<O[\"v2\"], PF>,\n post_id: d.post_id,\n score: d.score,\n }));\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Mascot as MascotData } from \"../generated/types.js\";\nimport type { UpdateMascotOptions } from \"../modules/Mascots.js\";\n\ninterface Mascot extends MascotData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Mascot Mascot}\n *\n * @see {@link https://e621.wiki/#model-Mascot Documentation} for more details.\n */\n@Schema(\"Mascot\")\nclass Mascot extends Base<MascotData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#destroy mascots#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#destroy\")\n async delete(): Promise<null> {\n return this.e621.mascots.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#update mascots#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#update\")\n async update(options: UpdateMascotOptions): Promise<null> {\n return this.e621.mascots.update(this.id, options);\n }\n}\n\nexport default Mascot;\n", "import { mascots_create, mascots_destroy, mascots_update, mascots_index } from \"../generated/sdk.js\";\nimport Mascot from \"../models/Mascot.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { MascotsCreateData, MascotsUpdateData, MascotsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateMascotOptions extends TransformDataBodyToOptions<MascotsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateMascotOptions extends TransformDataBodyToOptions<MascotsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchMascotsOptions extends TransformDataQueryToOptions<MascotsIndexData> {}\n\n/** @category Modules */\nexport default class Mascots extends Base {\n static readonly moduleKey = \"mascots\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#create mascots#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#create\")\n async create(options: CreateMascotOptions): Promise<Mascot> {\n return mascots_create({\n client: this.client,\n body: prefixKeys(options, \"mascot\"),\n }).then(res => this._handleResponse(res, 201, true, Mascot));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#destroy mascots#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#destroy\")\n async delete(id: number): Promise<null> {\n return mascots_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#index mascots#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#index\")\n async search(options?: SearchMascotsOptions): Promise<Array<Mascot>> {\n return mascots_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Mascot));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mascots-mascots\\#update mascots#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mascots-mascots\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"mascots#update\")\n async update(id: number, options: UpdateMascotOptions): Promise<null> {\n return mascots_update({\n client: this.client,\n path: { id },\n body: prefixKeys(options, \"mascot\"),\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ModAction as ModActionData } from \"../generated/types.js\";\n\ninterface ModAction extends ModActionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ModAction ModAction}\n *\n * @see {@link https://e621.wiki/#model-ModAction Documentation} for more details.\n */\n@Schema(\"ModAction\")\nclass ModAction extends Base<ModActionData> {}\n\nexport default ModAction;\n", "import { modActions_show, modActions_index } from \"../generated/sdk.js\";\nimport ModAction from \"../models/ModAction.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ModActionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchModActionsOptions extends TransformDataQueryToOptions<ModActionsIndexData> {}\n\n/** @category Modules */\nexport default class ModActions extends Base {\n static readonly moduleKey = \"modActions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mod_Actions-mod_actions\\#show mod_actions#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mod_Actions-mod_actions\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"mod_actions#show\")\n async get(id: number): Promise<ModAction | null> {\n return modActions_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, ModAction));\n }\n\n /**\n\t *\n\t * Note that some mod actions are not in use anymore. Their entries exist for historical purposes only.<br>\nThe current legacy actions are as follows:<br>\n* `created_positive_record`, `created_neutral_record`, `created_negative_record`\n* `created_flag_reason`, `edited_flag_reason`, `deleted_flag_reason`\n* `post_move_favorites`, `post_delete`, `post_undelete`, `post_destroy`, `post_rating_lock`, `post_unapprove`\n* `post_replacement_accept`, `post_replacement_reject`, `post_replacement_delete`\n\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Mod_Actions-mod_actions\\#index mod_actions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Mod_Actions-mod_actions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"mod_actions#index\")\n async search(options?: SearchModActionsOptions): Promise<Array<ModAction>> {\n return modActions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ModAction));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { NewsUpdate as NewsUpdateData } from \"../generated/types.js\";\nimport type { UpdateNewsUpdateOptions } from \"../modules/NewsUpdates.js\";\n\ninterface NewsUpdate extends NewsUpdateData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-NewsUpdate NewsUpdate}\n *\n * @see {@link https://e621.wiki/#model-NewsUpdate Documentation} for more details.\n */\n@Schema(\"NewsUpdate\")\nclass NewsUpdate extends Base<NewsUpdateData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#destroy news_updates#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#destroy\")\n async delete(): Promise<null> {\n return this.e621.newsUpdates.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#update news_updates#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#update\")\n async update(options: UpdateNewsUpdateOptions): Promise<null> {\n return this.e621.newsUpdates.update(this.id, options);\n }\n}\n\nexport default NewsUpdate;\n", "import { newsUpdates_create, newsUpdates_destroy, newsUpdates_update, newsUpdates_index } from \"../generated/sdk.js\";\nimport NewsUpdate from \"../models/NewsUpdate.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions, type TransformDataBodyToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { NewsUpdatesCreateData, NewsUpdatesUpdateData, NewsUpdatesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateNewsUpdateOptions extends TransformDataBodyToOptions<NewsUpdatesCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateNewsUpdateOptions extends TransformDataBodyToOptions<NewsUpdatesUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchNewsUpdatesOptions extends TransformDataQueryToOptions<NewsUpdatesIndexData> {}\n\n/** @category Modules */\nexport default class NewsUpdates extends Base {\n static readonly moduleKey = \"newsUpdates\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#create news_updates#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#create\")\n async create(options: CreateNewsUpdateOptions): Promise<NewsUpdate> {\n return newsUpdates_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, NewsUpdate));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#destroy news_updates#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#destroy\")\n async delete(id: number): Promise<null> {\n return newsUpdates_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#index news_updates#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#index\")\n async search(options?: SearchNewsUpdatesOptions): Promise<Array<NewsUpdate>> {\n return newsUpdates_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, NewsUpdate));\n }\n\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-News_Updates-news_updates\\#update news_updates#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-News_Updates-news_updates\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"news_updates#update\")\n async update(id: number, options: UpdateNewsUpdateOptions): Promise<null> {\n return newsUpdates_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Note as NoteData } from \"../generated/types.js\";\nimport type { UpdateNoteOptions } from \"../modules/Notes.js\";\n\ninterface Note extends NoteData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Note Note}\n *\n * @see {@link https://e621.wiki/#model-Note Documentation} for more details.\n */\n@Schema(\"Note\")\nclass Note extends Base<NoteData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#destroy notes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"notes#destroy\")\n async delete(): Promise<null> {\n return this.e621.notes.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#revert notes#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"notes#revert\")\n async revert(version_id: number): Promise<null> {\n return this.e621.notes.revert(this.id, version_id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#update notes#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"notes#update\")\n async update(options: UpdateNoteOptions): Promise<null> {\n return this.e621.notes.update(this.id, options);\n }\n}\n\nexport default Note;\n", "import {\n notes_create,\n notes_destroy,\n notes_update,\n notes_show,\n notes_revert,\n notes_index,\n} from \"../generated/sdk.js\";\nimport Note from \"../models/Note.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { NotesCreateData, NotesUpdateData, NotesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateNoteOptions extends TransformDataBodyToOptions<NotesCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateNoteOptions extends TransformDataBodyToOptions<NotesUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchNotesOptions extends TransformDataQueryToOptions<NotesIndexData> {}\n\n/** @category Modules */\nexport default class Notes extends Base {\n static readonly moduleKey = \"notes\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#create notes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"notes#create\")\n async create(options: CreateNoteOptions): Promise<Note> {\n return notes_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Note));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#destroy notes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"notes#destroy\")\n async delete(id: number): Promise<null> {\n return notes_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#show notes#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"notes#show\")\n async get(id: number): Promise<Note | null> {\n return notes_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Note));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#revert notes#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"notes#revert\")\n async revert(id: number, version_id: number): Promise<null> {\n return notes_revert({\n client: this.client,\n path: { id },\n query: { version_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#index notes#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"notes#index\")\n async search(options?: SearchNotesOptions): Promise<Array<Note>> {\n return notes_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Note));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#update notes#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"notes#update\")\n async update(id: number, options: UpdateNoteOptions): Promise<null> {\n return notes_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { NoteVersion as NoteVersionData } from \"../generated/types.js\";\n\ninterface NoteVersion extends NoteVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-NoteVersion NoteVersion}\n *\n * @see {@link https://e621.wiki/#model-NoteVersion Documentation} for more details.\n */\n@Schema(\"NoteVersion\")\nclass NoteVersion extends Base<NoteVersionData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Notes-notes\\#revert notes#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Notes-notes\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"notes#revert\")\n async revertTo(): Promise<null> {\n return this.e621.notes.revert(this.note_id, this.id);\n }\n}\n\nexport default NoteVersion;\n", "import { noteVersions_index } from \"../generated/sdk.js\";\nimport NoteVersion from \"../models/NoteVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { NoteVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchNoteVersionsOptions extends TransformDataQueryToOptions<NoteVersionsIndexData> {}\n\n/** @category Modules */\nexport default class NoteVersions extends Base {\n static readonly moduleKey = \"noteVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Note_Versions-note_versions\\#index note_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Note_Versions-note_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"note_versions#index\")\n async search(options?: SearchNoteVersionsOptions): Promise<Array<NoteVersion>> {\n return noteVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, NoteVersion));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Pool as PoolData } from \"../generated/types.js\";\nimport type { UpdatePoolOptions } from \"../modules/Pools.js\";\n\ninterface Pool extends PoolData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Pool Pool}\n *\n * @see {@link https://e621.wiki/#model-Pool Documentation} for more details.\n */\n@Schema(\"Pool\")\nclass Pool extends Base<PoolData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pool_elements\\#create pool_elements#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pool_elements\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"pool_elements#create\")\n async addPost(post_id: number): Promise<Pool> {\n return this.e621.pools.addPost(this.id, post_id);\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#destroy pools#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"pools#destroy\")\n async delete(): Promise<null> {\n return this.e621.pools.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pool_elements\\#destroy pool_elements#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pool_elements\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"pool_elements#destroy\")\n async removePost(post_id: number): Promise<null> {\n return this.e621.pools.removePost(this.id, post_id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#revert pools#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"pools#revert\")\n async revert(version_id: number): Promise<null> {\n return this.e621.pools.revert(this.id, version_id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#update pools#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"pools#update\")\n async update(options: UpdatePoolOptions): Promise<null> {\n return this.e621.pools.update(this.id, options);\n }\n}\n\nexport default Pool;\n", "import {\n poolElements_create,\n pools_create,\n pools_destroy,\n pools_update,\n pools_show,\n poolElements_recent,\n poolElements_destroy,\n pools_revert,\n pools_index,\n} from \"../generated/sdk.js\";\nimport Pool from \"../models/Pool.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PoolsCreateData, PoolsUpdateData, PoolElementsRecentResponses, PoolsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreatePoolOptions extends TransformDataBodyToOptions<PoolsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdatePoolOptions extends TransformDataBodyToOptions<PoolsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchPoolsOptions extends TransformDataQueryToOptions<PoolsIndexData> {}\n/** @category Modules/Types */\nexport interface PoolElementsRecentResponse extends GetResponse<PoolElementsRecentResponses, 200> {}\n\n/** @category Modules */\nexport default class Pools extends Base {\n static readonly moduleKey = \"pools\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pool_elements\\#create pool_elements#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pool_elements\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"pool_elements#create\")\n async addPost(pool_id: number, post_id: number): Promise<Pool> {\n return poolElements_create({\n client: this.client,\n body: { pool_id, post_id },\n }).then(res => this._handleResponse(res, 201, true, Pool));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#create pools#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"pools#create\")\n async create(options: CreatePoolOptions): Promise<Pool> {\n return pools_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Pool));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#destroy pools#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"pools#destroy\")\n async delete(id: number): Promise<null> {\n return pools_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#show pools#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"pools#show\")\n async get(id: number): Promise<Pool | null> {\n return pools_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Pool));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pool_elements\\#recent pool_elements#recent}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pool_elements\\#recent Documentation} for more details.\n\t */\n\t@OperationID(\"pool_elements#recent\")\n async getRecent(): Promise<PoolElementsRecentResponse> {\n return poolElements_recent({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pool_elements\\#destroy pool_elements#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pool_elements\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"pool_elements#destroy\")\n async removePost(pool_id: number, post_id: number): Promise<null> {\n return poolElements_destroy({\n client: this.client,\n body: { pool_id, post_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#revert pools#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"pools#revert\")\n async revert(id: number, version_id: number): Promise<null> {\n return pools_revert({\n client: this.client,\n path: { id },\n query: { version_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#index pools#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"pools#index\")\n async search(options?: SearchPoolsOptions): Promise<Array<Pool>> {\n return pools_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Pool));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#update pools#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"pools#update\")\n async update(id: number, options: UpdatePoolOptions): Promise<null> {\n return pools_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PoolVersion as PoolVersionData } from \"../generated/types.js\";\n\ninterface PoolVersion extends PoolVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PoolVersion PoolVersion}\n *\n * @see {@link https://e621.wiki/#model-PoolVersion Documentation} for more details.\n */\n@Schema(\"PoolVersion\")\nclass PoolVersion extends Base<PoolVersionData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pools-pools\\#revert pools#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pools-pools\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"pools#revert\")\n async revertTo(): Promise<null> {\n return this.e621.pools.revert(this.pool_id, this.id);\n }\n}\n\nexport default PoolVersion;\n", "import { poolVersions_index } from \"../generated/sdk.js\";\nimport PoolVersion from \"../models/PoolVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PoolVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchPoolVersionsOptions extends TransformDataQueryToOptions<PoolVersionsIndexData> {}\n\n/** @category Modules */\nexport default class PoolVersions extends Base {\n static readonly moduleKey = \"poolVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Pool_Versions-pool_versions\\#index pool_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Pool_Versions-pool_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"pool_versions#index\")\n async search(options?: SearchPoolVersionsOptions): Promise<Array<PoolVersion>> {\n return poolVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PoolVersion));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { MinimalUser as MinimalUserData } from \"../generated/types.js\";\n\ninterface MinimalUser extends MinimalUserData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-MinimalUser MinimalUser}\n *\n * @see {@link https://e621.wiki/#model-MinimalUser Documentation} for more details.\n */\n@Schema(\"MinimalUser\")\nclass MinimalUser extends Base<MinimalUserData> {}\n\nexport default MinimalUser;\n", "import {\n staffPostPosts_aiCheck,\n posts_copyNotes,\n staffPostPosts_delete,\n staffPostPosts_expunge,\n posts_show,\n posts_showSeq,\n staffPostPosts_previousOwners,\n posts_random,\n postRecommendations_artist,\n postRecommendations_tags,\n postFavorites_index,\n posts_markAsTranslated,\n staffPostPosts_moveFavorites,\n staffPostPosts_regenerateThumbnails,\n staffPostPosts_regenerateVideos,\n staffPostPosts_reowner,\n posts_revert,\n posts_index,\n staffPostPosts_undelete,\n posts_update,\n posts_updateIqdb,\n} from \"../generated/sdk.js\";\nimport MinimalUser from \"../models/MinimalUser.js\";\nimport Post from \"../models/Post.js\";\nimport ThumbnailPost from \"../models/ThumbnailPost.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport { type AnyPostData, type NoV2Options, type PostFormat, type PostFormatOptions, wrapPost, wrapPosts } from \"./posts/Format.js\";\n\nimport type { Client } from \"../generated/client/types.js\";\nimport type {\n StaffPostPostsDeleteData,\n PostsShowData,\n PostsShowSeqData,\n PostsRandomData,\n PostRecommendationsArtistData,\n LegacyPost as LegacyPostData,\n PostFavoritesIndexData,\n PostsMarkAsTranslatedData,\n StaffPostPostsMoveFavoritesData,\n PostRecommendation,\n StaffPostPostsReownerData,\n PostsIndexData,\n PostsUpdateData,\n PostsUpdateIqdbData,\n} from \"../generated/types.js\";\nimport type E621 from \"../index.js\";\n\n/** @category Modules/Types */\nexport interface DeletePostOptions extends TransformDataBodyToOptions<StaffPostPostsDeleteData> {}\n/** @category Modules/Types */\nexport interface MovePostFavoritesOptions extends TransformDataBodyToOptions<StaffPostPostsMoveFavoritesData> {}\n/** @category Modules/Types */\nexport interface SearchPostsOptions extends TransformDataQueryToOptions<PostsIndexData> {}\n/** @category Modules/Types */\nexport interface ListPostFavoritesOptions extends TransformDataQueryToOptions<PostFavoritesIndexData> {}\n/** @category Modules/Types */\nexport interface GetRandomPostOptions extends TransformDataQueryToOptions<PostsRandomData> {}\n/** @category Modules/Types */\nexport interface GetPostOptions extends TransformDataQueryToOptions<PostsShowData> {}\n/** @category Modules/Types */\nexport interface GetPostInSequenceOptions extends TransformDataQueryToOptions<PostsShowSeqData> {}\n/** @category Modules/Types */\nexport interface MarkPostAsTranslatedOptions extends TransformDataQueryToOptions<PostsMarkAsTranslatedData> {}\n/** @category Modules/Types */\nexport interface UpdatePostOptions extends TransformDataBodyToOptions<PostsUpdateData>, TransformDataQueryToOptions<PostsUpdateData> {}\n/** @category Modules/Types */\nexport interface UpdatePostIqdbOptions extends TransformDataQueryToOptions<PostsUpdateIqdbData> {}\n/** @category Modules/Types */\nexport interface RecommendedPostsOptions extends TransformDataQueryToOptions<PostRecommendationsArtistData> {}\n/** @category Modules/Types */\nexport interface ReownPostOptions extends TransformDataBodyToOptions<StaffPostPostsReownerData> {}\n/** @category Modules/Types */\nexport interface PostPreviousOwner {\n id: number;\n name: string;\n}\n/** @category Modules/Types */\nexport interface RecommendedPostsResult<PF extends PostFormatOptions = NoV2Options> {\n model_version: string;\n post_data: Array<ThumbnailPost<PF>>;\n post_id: number;\n results: Array<PostRecommendation>;\n}\n/** @category Modules/Types */\nexport type PostSearchResult<O extends SearchPostsOptions, PF extends PostFormatOptions = NoV2Options>\n = O extends { md5: string }\n ? PostFormat<O[\"v2\"], O[\"mode\"], PF>\n : Array<PostFormat<O[\"v2\"], O[\"mode\"], PF>>;\n\n/** @category Modules */\nexport default class Posts<PF extends PostFormatOptions = NoV2Options> extends Base<PF> {\n static readonly moduleKey = \"posts\" as const;\n protected readonly defaultFormat: PF;\n /**\n * @param defaultFormat - The v2/mode format to fall back to for any method here (or any convenience\n * method on a returned post model) called without explicit v2/mode options. Defaults to the legacy\n * format, matching `new E621()`'s behavior when {@link Options.defaultPostFormat} isn't set.\n */\n constructor(e621: E621<PF> | undefined, client: Client, defaultFormat: PF = {} as PF) {\n super(e621, client);\n this.defaultFormat = defaultFormat;\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#ai_check staff/post/posts#ai_check}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#ai_check Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#ai_check\")\n async aiCheck(id: number): Promise<string> {\n const res = await staffPostPosts_aiCheck({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n });\n return this._handleResponse(res, 302, true);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#copy_notes posts#copy_notes}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#copy_notes Documentation} for more details.\n\t */\n\t@OperationID(\"posts#copy_notes\")\n async copyNotes(id: number, other_post_id: number): Promise<null> {\n return posts_copyNotes({\n client: this.client,\n path: { id },\n body: { other_post_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. `commit=Delete` must be set.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#delete staff/post/posts#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#delete\")\n async delete(id: number, options: DeletePostOptions): Promise<unknown> {\n return staffPostPosts_delete({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission and be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#expunge staff/post/posts#expunge}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#expunge Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#expunge\")\n async expunge(id: number, reason: string): Promise<Post<PF>> {\n return staffPostPosts_expunge({\n client: this.client,\n path: { id },\n body: { reason },\n }).then((res) => {\n const data = this._handleResponse(res, 201, true);\n // NOTE: the spec still references the \"Post\" (v2 base) schema here, but this endpoint has no v2 param - the response is actually legacy-shaped.\n return new Post(this.e621, data.post as unknown as LegacyPostData);\n });\n }\n\n /**\n\t *\n\t * You must be the user or Moderator+ to see users that have their favorites hidden.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\\#index post_favorites#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Favorites-post_favorites\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_favorites#index\")\n async favorites(id: number, options: ListPostFavoritesOptions): Promise<Array<MinimalUser>> {\n return postFavorites_index({\n client: this.client,\n path: { id },\n query: options,\n }).then(res => this._handleResponse(res, 200, true, MinimalUser));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#show posts#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"posts#show\")\n async get<const O extends GetPostOptions = PF>(id: number, options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF> | null> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_show({\n client: this.client,\n path: { id },\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, false);\n if (data === null) return null;\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n\n /**\n\t *\n\t * Will error if no body is provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#mark_as_translated posts#mark_as_translated}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#mark_as_translated Documentation} for more details.\n\t */\n\t@OperationID(\"posts#mark_as_translated\")\n async markTranslated<const O extends MarkPostAsTranslatedOptions = PF>(id: number, options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_markAsTranslated({\n client: this.client,\n path: { id },\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. `commit=Submit`` must be set.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#move_favorites staff/post/posts#move_favorites}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#move_favorites Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#move_favorites\")\n async moveFavorites(id: number, options: MovePostFavoritesOptions): Promise<unknown> {\n return staffPostPosts_moveFavorites({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be an Approver\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#previous_owners staff/post/posts#previous_owners}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#previous_owners Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#previous_owners\")\n async previousOwners(id: number): Promise<Array<PostPreviousOwner>> {\n return staffPostPosts_previousOwners({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#random posts#random}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#random Documentation} for more details.\n\t */\n\t@OperationID(\"posts#random\")\n async random<const O extends GetRandomPostOptions = PF>(options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_random({\n client: this.client,\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\\#artist post_recommendations#artist}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\\#artist Documentation} for more details.\n\t */\n\t@OperationID(\"post_recommendations#artist\")\n async recommendedByArtist(id: number, options?: RecommendedPostsOptions): Promise<RecommendedPostsResult<PF>> {\n return postRecommendations_artist({\n client: this.client,\n path: { id },\n query: options,\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return { ...data, post_data: data.post_data.map(post => new ThumbnailPost(this.e621, post)) };\n });\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_recommendations\\#tags post_recommendations#tags}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_recommendations\\#tags Documentation} for more details.\n\t */\n\t@OperationID(\"post_recommendations#tags\")\n async recommendedByTags(id: number, options?: RecommendedPostsOptions): Promise<RecommendedPostsResult<PF>> {\n return postRecommendations_tags({\n client: this.client,\n path: { id },\n query: options,\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return { ...data, post_data: data.post_data.map(post => new ThumbnailPost(this.e621, post)) };\n });\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_thumbnails staff/post/posts#regenerate_thumbnails}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_thumbnails Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#regenerate_thumbnails\")\n async regenerateThumbnails(id: number): Promise<Post<PF>> {\n return staffPostPosts_regenerateThumbnails({\n client: this.client,\n path: { id },\n }).then((res) => {\n const data = this._handleResponse(res, 201, true);\n return new Post(this.e621, data.post as unknown as LegacyPostData);\n });\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_videos staff/post/posts#regenerate_videos}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#regenerate_videos Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#regenerate_videos\")\n async regenerateVideos(id: number): Promise<null> {\n return staffPostPosts_regenerateVideos({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must have be Janitor+ and an Approver\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#reowner staff/post/posts#reowner}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#reowner Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#reowner\")\n async reown(id: number, options: ReownPostOptions): Promise<string> {\n return staffPostPosts_reowner({\n client: this.client,\n path: { id },\n body: prefixKeys(options, \"reowner\"),\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#revert posts#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"posts#revert\")\n async revert(id: number, version_id: number): Promise<null> {\n return posts_revert({\n client: this.client,\n path: { id },\n query: { version_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#index posts#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"posts#index\")\n async search<const O extends SearchPostsOptions = PF>(options?: O): Promise<PostSearchResult<O, PF>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_index({\n client: this.client,\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n if (options?.md5) {\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostSearchResult<O, PF>;\n }\n const raw = (v2 ? data : (data as { posts: Array<LegacyPostData> }).posts) as Array<AnyPostData>;\n return wrapPosts(this.e621, raw, v2, mode) as PostSearchResult<O, PF>;\n });\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#show_seq posts#show_seq}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#show_seq Documentation} for more details.\n\t */\n\t@OperationID(\"posts#show_seq\")\n async sequence<const O extends GetPostInSequenceOptions = PF>(id: number, options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_showSeq({\n client: this.client,\n path: { id },\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#undelete staff/post/posts#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/posts\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/posts#undelete\")\n async undelete(id: number): Promise<Post<PF>> {\n return staffPostPosts_undelete({\n client: this.client,\n path: { id },\n }).then((res) => {\n const data = this._handleResponse(res, 201, true);\n return new Post(this.e621, data.post as unknown as LegacyPostData);\n });\n }\n\n /**\n\t *\n\t * Most errors are silently swallowed.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#update posts#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"posts#update\")\n async update<const O extends UpdatePostOptions = PF>(id: number, options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n const { v2: rawV2, mode: rawMode, ...body } = (options ?? {}) as UpdatePostOptions;\n const v2 = rawV2 ?? this.defaultFormat.v2;\n const mode = rawMode ?? this.defaultFormat.mode;\n return posts_update({\n client: this.client,\n path: { id },\n query: { v2, mode },\n body,\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#update_iqdb posts#update_iqdb}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#update_iqdb Documentation} for more details.\n\t */\n\t@OperationID(\"posts#update_iqdb\")\n async updateIqdb<const O extends UpdatePostIqdbOptions = PF>(id: number, options?: O): Promise<PostFormat<O[\"v2\"], O[\"mode\"], PF>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return posts_updateIqdb({\n client: this.client,\n path: { id },\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { post: LegacyPostData }).post) as AnyPostData;\n return wrapPost(this.e621, raw, v2, mode) as PostFormat<O[\"v2\"], O[\"mode\"], PF>;\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostSet as PostSetData } from \"../generated/types.js\";\nimport type { UpdatePostSetOptions } from \"../modules/PostSets.js\";\n\ninterface PostSet extends PostSetData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostSet PostSet}\n *\n * @see {@link https://e621.wiki/#model-PostSet Documentation} for more details.\n */\n@Schema(\"PostSet\")\nclass PostSet extends Base<PostSetData> {\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#add_posts post_sets#add_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#add_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#add_posts\")\n async addPosts(post_ids: Array<number>): Promise<PostSet> {\n return this.e621.postSets.addPosts(this.id, post_ids);\n }\n\n /**\n\t *\n\t * You must be the owner of the set, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#destroy post_sets#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#destroy\")\n async delete(): Promise<null> {\n return this.e621.postSets.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#remove_posts post_sets#remove_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#remove_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#remove_posts\")\n async removePosts(post_ids: Array<number>): Promise<PostSet> {\n return this.e621.postSets.removePosts(this.id, post_ids);\n }\n\n /**\n\t *\n\t * You must be the owner of the set, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update post_sets#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#update\")\n async update(options: UpdatePostSetOptions): Promise<null> {\n return this.e621.postSets.update(this.id, options);\n }\n\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update_posts post_sets#update_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#update_posts\")\n async updatePosts(post_ids: Array<number>): Promise<PostSet> {\n return this.e621.postSets.updatePosts(this.id, post_ids);\n }\n}\n\nexport default PostSet;\n", "import {\n postSets_addPosts,\n postSets_create,\n postSets_destroy,\n postSets_update,\n postSets_show,\n postSets_forSelect,\n postSets_removePosts,\n postSets_index,\n postSets_updatePosts,\n} from \"../generated/sdk.js\";\nimport PostSet from \"../models/PostSet.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostSetsCreateData, PostSetsUpdateData, PostSetsForSelectResponses, PostSetsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreatePostSetOptions extends TransformDataBodyToOptions<PostSetsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdatePostSetOptions extends TransformDataBodyToOptions<PostSetsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchPostSetsOptions extends TransformDataQueryToOptions<PostSetsIndexData> {}\n/** @category Modules/Types */\nexport interface PostSetsForSelectResponse extends GetResponse<PostSetsForSelectResponses, 200> {}\n\n/** @category Modules */\nexport default class PostSets extends Base {\n static readonly moduleKey = \"postSets\" as const;\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#add_posts post_sets#add_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#add_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#add_posts\")\n async addPosts(id: number, post_ids: Array<number>): Promise<PostSet> {\n return postSets_addPosts({\n client: this.client,\n path: { id },\n body: { post_ids },\n }).then(res => this._handleResponse(res, 201, true, PostSet));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#create post_sets#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#create\")\n async create(options: CreatePostSetOptions): Promise<PostSet> {\n return postSets_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, PostSet));\n }\n\n /**\n\t *\n\t * You must be the owner of the set, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#destroy post_sets#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#destroy\")\n async delete(id: number): Promise<null> {\n return postSets_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#for_select post_sets#for_select}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#for_select Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#for_select\")\n async forSelect(): Promise<PostSetsForSelectResponse> {\n return postSets_forSelect({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+ if the set is not public.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#show post_sets#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#show\")\n async get(id: number): Promise<PostSet | null> {\n return postSets_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, PostSet));\n }\n\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#remove_posts post_sets#remove_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#remove_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#remove_posts\")\n async removePosts(id: number, post_ids: Array<number>): Promise<PostSet> {\n return postSets_removePosts({\n client: this.client,\n path: { id },\n body: { post_ids },\n }).then(res => this._handleResponse(res, 201, true, PostSet));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#index post_sets#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#index\")\n async search(options?: SearchPostSetsOptions): Promise<Array<PostSet>> {\n return postSets_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PostSet));\n }\n\n /**\n\t *\n\t * You must be the owner of the set, or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update post_sets#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#update\")\n async update(id: number, options: UpdatePostSetOptions): Promise<null> {\n return postSets_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be the owner of the set, a maintainer (if public), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update_posts post_sets#update_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Sets-post_sets\\#update_posts Documentation} for more details.\n\t */\n\t@OperationID(\"post_sets#update_posts\")\n async updatePosts(id: number, post_ids: Array<number>): Promise<PostSet> {\n return postSets_updatePosts({\n client: this.client,\n path: { id },\n body: { post_ids_string: post_ids.join(\" \") },\n }).then(res => this._handleResponse(res, 200, true, PostSet));\n }\n}\n", "import { postVersions_hide, postVersions_index, postVersions_undo, postVersions_unhide } from \"../generated/sdk.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchPostVersionsOptions extends TransformDataQueryToOptions<PostVersionsIndexData> {}\n\n/** @category Modules */\nexport default class PostVersions extends Base {\n static readonly moduleKey = \"postVersions\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#hide post_versions#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#hide\")\n async hide(id: number): Promise<string> {\n return postVersions_hide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#index post_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#index\")\n async search(options?: SearchPostVersionsOptions): Promise<null> {\n return postVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#undo post_versions#undo}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#undo Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#undo\")\n async undo(id: number): Promise<null> {\n return postVersions_undo({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#unhide post_versions#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#unhide\")\n async unhide(id: number): Promise<string> {\n return postVersions_unhide({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 302, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { SearchTrendBlacklist as SearchTrendBlacklistData } from \"../generated/types.js\";\nimport type { SearchTrendsPurgeResponse } from \"../modules/SearchTrends.js\";\n\ninterface SearchTrendBlacklist extends SearchTrendBlacklistData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-SearchTrendBlacklist SearchTrendBlacklist}\n *\n * @see {@link https://e621.wiki/#model-SearchTrendBlacklist Documentation} for more details.\n */\n@Schema(\"SearchTrendBlacklist\")\nclass SearchTrendBlacklist extends Base<SearchTrendBlacklistData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#destroy search_trend_blacklists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"search_trend_blacklists#destroy\")\n async delete(): Promise<null> {\n return this.e621.searchTrendBlacklists.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#purge search_trends#purge}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#purge Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#purge\")\n async purge(): Promise<SearchTrendsPurgeResponse> {\n return this.e621.searchTrends.purge(this.id);\n }\n}\n\nexport default SearchTrendBlacklist;\n", "import { searchTrendBlacklists_create, searchTrendBlacklists_destroy, searchTrendBlacklists_index } from \"../generated/sdk.js\";\nimport SearchTrendBlacklist from \"../models/SearchTrendBlacklist.js\";\nimport { OperationID, TransformDataBodyToOptions, TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { SearchTrendBlacklistsCreateData, SearchTrendBlacklistsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateSearchTrendBlacklistsOptions extends TransformDataBodyToOptions<SearchTrendBlacklistsCreateData> {}\n/** @category Modules/Types */\nexport interface SearchSearchTrendBlacklistsOptions extends TransformDataQueryToOptions<SearchTrendBlacklistsIndexData> {}\n\n/** @category Modules */\nexport default class SearchTrendBlacklists extends Base {\n static readonly moduleKey = \"searchTrendBlacklists\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#create search_trend_blacklists#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"search_trend_blacklists#create\")\n async create(options: CreateSearchTrendBlacklistsOptions): Promise<SearchTrendBlacklist> {\n return searchTrendBlacklists_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true, SearchTrendBlacklist));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#destroy search_trend_blacklists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"search_trend_blacklists#destroy\")\n async delete(id: number): Promise<null> {\n return searchTrendBlacklists_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#index search_trend_blacklists#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trend_Blacklists-search_trend_blacklists\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"search_trend_blacklists#index\")\n async search(options?: SearchSearchTrendBlacklistsOptions): Promise<Array<SearchTrendBlacklist>> {\n return searchTrendBlacklists_index({\n client: this.client,\n query: options,\n }).then(res => this._handleResponse(res, 200, true, SearchTrendBlacklist));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { RisingSearchTrend as RisingSearchTrendData } from \"../generated/types.js\";\n\ninterface RisingSearchTrend extends RisingSearchTrendData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-RisingSearchTrend RisingSearchTrend}\n *\n * @see {@link https://e621.wiki/#model-RisingSearchTrend Documentation} for more details.\n */\n@Schema(\"RisingSearchTrend\")\nclass RisingSearchTrend extends Base<RisingSearchTrendData> {}\n\nexport default RisingSearchTrend;\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { SearchTrend as SearchTrendData } from \"../generated/types.js\";\n\ninterface SearchTrend extends SearchTrendData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-SearchTrend SearchTrend}\n *\n * @see {@link https://e621.wiki/#model-SearchTrend Documentation} for more details.\n */\n@Schema(\"SearchTrend\")\nclass SearchTrend extends Base<SearchTrendData> {}\n\nexport default SearchTrend;\n", "import { searchTrends_clearCache, searchTrends_purge, searchTrends_rising, searchTrends_index, searchTrends_updateSettings } from \"../generated/sdk.js\";\nimport RisingSearchTrend from \"../models/RisingSearchTrend.js\";\nimport SearchTrend from \"../models/SearchTrend.js\";\nimport { GetResponse, OperationID, TransformDataBodyToOptions, TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type {\n SearchTrendsClearCacheResponses,\n SearchTrendsIndexData,\n SearchTrendsPurgeResponses,\n SearchTrendsUpdateSettingsData,\n SearchTrendsUpdateSettingsResponses,\n} from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface ListSearchTrendsOptions extends TransformDataQueryToOptions<SearchTrendsIndexData> {}\n/** @category Modules/Types */\nexport interface UpdateSearchTrendsSettingsOptions extends TransformDataBodyToOptions<SearchTrendsUpdateSettingsData> {}\n/** @category Modules/Types */\nexport interface SearchTrendsClearCacheResponse extends GetResponse<SearchTrendsClearCacheResponses, 200> {}\n/** @category Modules/Types */\nexport interface SearchTrendsUpdateSettingsResponse extends GetResponse<SearchTrendsUpdateSettingsResponses, 200> {}\n/** @category Modules/Types */\nexport interface SearchTrendsPurgeResponse extends GetResponse<SearchTrendsPurgeResponses, 200> {}\n\n/** @category Modules */\nexport default class SearchTrends extends Base {\n static readonly moduleKey = \"searchTrends\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#clear_cache search_trends#clear_cache}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#clear_cache Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#clear_cache\")\n async clearCache(): Promise<SearchTrendsClearCacheResponse> {\n return searchTrends_clearCache({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#index search_trends#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#index\")\n async list(options?: ListSearchTrendsOptions): Promise<Array<SearchTrend>> {\n return searchTrends_index({\n client: this.client,\n query: options,\n }).then(res => this._handleResponse(res, 200, true, SearchTrend));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#rising search_trends#rising}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#rising Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#rising\")\n async listRising(): Promise<Array<RisingSearchTrend>> {\n return searchTrends_rising({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true, RisingSearchTrend));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#purge search_trends#purge}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#purge Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#purge\")\n async purge(id: number): Promise<SearchTrendsPurgeResponse> {\n return searchTrends_purge({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#update_settings search_trends#update_settings}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Search_Trends-search_trends\\#update_settings Documentation} for more details.\n\t */\n\t@OperationID(\"search_trends#update_settings\")\n async updateSettings(options: UpdateSearchTrendsSettingsOptions): Promise<SearchTrendsUpdateSettingsResponse> {\n return searchTrends_updateSettings({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffNote as StaffNoteData } from \"../generated/types.js\";\nimport type { UpdateStaffNoteOptions } from \"../modules/StaffNotes.js\";\n\ninterface StaffNote extends StaffNoteData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-StaffNote StaffNote}\n *\n * @see {@link https://e621.wiki/#model-StaffNote Documentation} for more details.\n */\n@Schema(\"StaffNote\")\nclass StaffNote extends Base<StaffNoteData> {\n /**\n\t *\n\t * You must be the creator or Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#delete staff_notes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#delete\")\n async delete(): Promise<StaffNote> {\n return this.e621.staffNotes.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator or Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#undelete staff_notes#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#undelete\")\n async undelete(): Promise<StaffNote> {\n return this.e621.staffNotes.undelete(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#update staff_notes#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#update\")\n async update(options: UpdateStaffNoteOptions): Promise<StaffNote> {\n return this.e621.staffNotes.update(this.id, options);\n }\n}\n\nexport default StaffNote;\n", "import {\n staffNotes_create,\n staffNotes_delete,\n staffNotes_update,\n staffNotes_show,\n staffNotes_index,\n staffNotes_undelete,\n} from \"../generated/sdk.js\";\nimport StaffNote from \"../models/StaffNote.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffNotesCreateData, StaffNotesUpdateData, StaffNotesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateStaffNoteOptions extends TransformDataBodyToOptions<StaffNotesCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateStaffNoteOptions extends TransformDataBodyToOptions<StaffNotesUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchStaffNotesOptions extends TransformDataQueryToOptions<StaffNotesIndexData> {}\n\n/** @category Modules */\nexport default class StaffNotes extends Base {\n static readonly moduleKey = \"staffNotes\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#create staff_notes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#create\")\n async create(options: CreateStaffNoteOptions): Promise<StaffNote> {\n return staffNotes_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, StaffNote));\n }\n\n /**\n\t *\n\t * You must be the creator or Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#delete staff_notes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#delete\")\n async delete(id: number): Promise<StaffNote> {\n return staffNotes_delete({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, StaffNote));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#show staff_notes#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#show\")\n async get(id: number): Promise<StaffNote | null> {\n return staffNotes_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, StaffNote));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#index staff_notes#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#index\")\n async search(options?: SearchStaffNotesOptions): Promise<Array<StaffNote>> {\n return staffNotes_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, StaffNote));\n }\n\n /**\n\t *\n\t * You must be the creator or Admin+.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#undelete staff_notes#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#undelete\")\n async undelete(id: number): Promise<StaffNote> {\n return staffNotes_undelete({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, StaffNote));\n }\n\n /**\n\t *\n\t * You must be the creator or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#update staff_notes#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Notes-staff_notes\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff_notes#update\")\n async update(id: number, options: UpdateStaffNoteOptions): Promise<StaffNote> {\n return staffNotes_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 200, true, StaffNote));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type TagCorrection from \"./TagCorrection.js\";\nimport type TagPreview from \"./TagPreview.js\";\nimport type { Tag as TagData } from \"../generated/types.js\";\nimport type { UpdateTagOptions } from \"../modules/Tags.js\";\n\ninterface Tag extends TagData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Tag Tag}\n *\n * @see {@link https://e621.wiki/#model-Tag Documentation} for more details.\n */\n@Schema(\"Tag\")\nclass Tag extends Base<TagData> {\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#destroy tags#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tags#destroy\")\n async delete(): Promise<null> {\n return this.e621.tags.delete(this.id);\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tag_corrections\\#show tag_corrections#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tag_corrections\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tag_corrections#show\")\n async getCorrection(): Promise<TagCorrection> {\n return this.e621.tagCorrections.get(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#preview tags#preview}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#preview Documentation} for more details.\n\t */\n\t@OperationID(\"tags#preview\")\n async preview(): Promise<Array<TagPreview>> {\n return this.e621.tags.preview(this.name);\n }\n\n /**\n\t *\n\t * Must be Admin+ if the tag is locked or post count is >100.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#update tags#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tags#update\")\n async update(options: UpdateTagOptions): Promise<null> {\n return this.e621.tags.update(this.id, options);\n }\n}\n\nexport default Tag;\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagPreview as TagPreviewData } from \"../generated/types.js\";\n\ninterface TagPreview extends TagPreviewData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-TagPreview TagPreview}\n *\n * @see {@link https://e621.wiki/#model-TagPreview Documentation} for more details.\n */\n@Schema(\"TagPreview\")\nclass TagPreview extends Base<TagPreviewData> {}\n\nexport default TagPreview;\n", "import {\n tags_destroy,\n tags_update,\n tags_show,\n tags_preview,\n tags_index,\n} from \"../generated/sdk.js\";\nimport Tag from \"../models/Tag.js\";\nimport TagPreview from \"../models/TagPreview.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagsIndexData, TagsUpdateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface UpdateTagOptions extends TransformDataBodyToOptions<TagsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchTagsOptions extends TransformDataQueryToOptions<TagsIndexData> {}\n\n/** @category Modules */\nexport default class Tags extends Base {\n static readonly moduleKey = \"tags\" as const;\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#destroy tags#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tags#destroy\")\n async delete(id: number): Promise<null> {\n return tags_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#show tags#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tags#show\")\n async get(id: number): Promise<Tag | null> {\n return tags_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Tag));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#preview tags#preview}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#preview Documentation} for more details.\n\t */\n\t@OperationID(\"tags#preview\")\n async preview(tags: string): Promise<Array<TagPreview>> {\n return tags_preview({\n client: this.client,\n body: { tags },\n }).then(res => this._handleResponse(res, 200, true, TagPreview));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#index tags#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"tags#index\")\n async search(options?: SearchTagsOptions): Promise<Array<Tag>> {\n return tags_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Tag));\n }\n\n /**\n\t *\n\t * Must be Admin+ if the tag is locked or post count is >100.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tags\\#update tags#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tags\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tags#update\")\n async update(id: number, options: UpdateTagOptions): Promise<null> {\n return tags_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Takedown as TakedownData } from \"../generated/types.js\";\nimport type { TakedownsAddByIdsResponse, TakedownsAddByTagsResponse, TakedownsCountMatchingPostsResponse, UpdateTakedownOptions } from \"../modules/Takedowns.js\";\n\ninterface Takedown extends TakedownData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Takedown Takedown}\n *\n * @see {@link https://e621.wiki/#model-Takedown Documentation} for more details.\n */\n@Schema(\"Takedown\")\nclass Takedown extends Base<TakedownData> {\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_ids takedowns#add_by_ids}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_ids Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#add_by_ids\")\n async addByIds(post_ids: Array<number>): Promise<TakedownsAddByIdsResponse> {\n return this.e621.takedowns.addByIds(this.id, post_ids);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_tags takedowns#add_by_tags}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_tags Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#add_by_tags\")\n async addByTags(tags: Array<string>): Promise<TakedownsAddByTagsResponse> {\n return this.e621.takedowns.addByTags(this.id, tags);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#count_matching_posts takedowns#count_matching_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#count_matching_posts Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#count_matching_posts\")\n async countMatchingPosts(tags: string): Promise<TakedownsCountMatchingPostsResponse> {\n return this.e621.takedowns.countMatchingPosts(this.id, tags);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#destroy takedowns#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#destroy\")\n async delete(): Promise<null> {\n return this.e621.takedowns.delete(this.id);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#remove_by_ids takedowns#remove_by_ids}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#remove_by_ids Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#remove_by_ids\")\n async removeByIds(post_ids: Array<number>): Promise<null> {\n return this.e621.takedowns.removeByIds(this.id, post_ids);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#update takedowns#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#update\")\n async update(options: UpdateTakedownOptions): Promise<null> {\n return this.e621.takedowns.update(this.id, options);\n }\n}\n\nexport default Takedown;\n", "import {\n takedowns_addByIds,\n takedowns_addByTags,\n takedowns_countMatchingPosts,\n takedowns_create,\n takedowns_destroy,\n takedowns_update,\n takedowns_show,\n takedowns_removeByIds,\n takedowns_index,\n} from \"../generated/sdk.js\";\nimport Takedown from \"../models/Takedown.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type {\n TakedownsAddByIdsResponses,\n TakedownsAddByTagsResponses,\n TakedownsCountMatchingPostsResponses,\n TakedownsCreateData,\n TakedownsUpdateData,\n TakedownsIndexData,\n} from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateTakedownOptions extends TransformDataBodyToOptions<TakedownsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateTakedownOptions extends TransformDataBodyToOptions<TakedownsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchTakedownsOptions extends TransformDataQueryToOptions<TakedownsIndexData> {}\n/** @category Modules/Types */\nexport interface TakedownsAddByIdsResponse extends GetResponse<TakedownsAddByIdsResponses, 200> {}\n/** @category Modules/Types */\nexport interface TakedownsAddByTagsResponse extends GetResponse<TakedownsAddByTagsResponses, 200> {}\n/** @category Modules/Types */\nexport interface TakedownsCountMatchingPostsResponse extends GetResponse<TakedownsCountMatchingPostsResponses, 200> {}\n\n/** @category Modules */\nexport default class Takedowns extends Base {\n static readonly moduleKey = \"takedowns\" as const;\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_ids takedowns#add_by_ids}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_ids Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#add_by_ids\")\n async addByIds(id: number, post_ids: Array<number>): Promise<TakedownsAddByIdsResponse> {\n return takedowns_addByIds({\n client: this.client,\n path: { id },\n body: { post_ids: post_ids.join(\" \") },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_tags takedowns#add_by_tags}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#add_by_tags Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#add_by_tags\")\n async addByTags(id: number, tags: Array<string>): Promise<TakedownsAddByTagsResponse> {\n return takedowns_addByTags({\n client: this.client,\n path: { id },\n body: { post_tags: tags.join(\" \") },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#count_matching_posts takedowns#count_matching_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#count_matching_posts Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#count_matching_posts\")\n async countMatchingPosts(id: number, tags: string): Promise<TakedownsCountMatchingPostsResponse> {\n return takedowns_countMatchingPosts({\n client: this.client,\n path: { id },\n body: { post_tags: tags },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#create takedowns#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#create\")\n async create(options: CreateTakedownOptions): Promise<Takedown> {\n return takedowns_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, Takedown));\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#destroy takedowns#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#destroy\")\n async delete(id: number): Promise<null> {\n return takedowns_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#show takedowns#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#show\")\n async get(id: number): Promise<Takedown | null> {\n return takedowns_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Takedown));\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#remove_by_ids takedowns#remove_by_ids}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#remove_by_ids Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#remove_by_ids\")\n async removeByIds(id: number, post_ids: Array<number>): Promise<null> {\n return takedowns_removeByIds({\n client: this.client,\n path: { id },\n body: { post_ids: post_ids.join(\" \") },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#index takedowns#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#index\")\n async search(options?: SearchTakedownsOptions): Promise<Array<Takedown>> {\n return takedowns_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Takedown));\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Takedowns-takedowns\\#update takedowns#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Takedowns-takedowns\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"takedowns#update\")\n async update(id: number, options: UpdateTakedownOptions): Promise<null> {\n return takedowns_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Ticket as TicketData } from \"../generated/types.js\";\nimport type { UpdateTicketOptions } from \"../modules/Tickets.js\";\n\ninterface Ticket extends TicketData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Ticket Ticket}\n *\n * @see {@link https://e621.wiki/#model-Ticket Documentation} for more details.\n */\n@Schema(\"Ticket\")\nclass Ticket extends Base<TicketData> {\n /**\n\t *\n\t * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#claim tickets#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#claim\")\n async claim(): Promise<Ticket> {\n return this.e621.tickets.claim(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#unclaim tickets#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#unclaim\")\n async unclaim(): Promise<Ticket> {\n return this.e621.tickets.unclaim(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#update tickets#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#update\")\n async update(options: UpdateTicketOptions): Promise<null> {\n return this.e621.tickets.update(this.id, options);\n }\n}\n\nexport default Ticket;\n", "import {\n tickets_claim,\n tickets_update,\n tickets_show,\n tickets_index,\n tickets_unclaim,\n} from \"../generated/sdk.js\";\nimport Ticket from \"../models/Ticket.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TicketsUpdateData, TicketsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface UpdateTicketOptions extends TransformDataBodyToOptions<TicketsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchTicketsOptions extends TransformDataQueryToOptions<TicketsIndexData> {}\n\n/** @category Modules */\nexport default class Tickets extends Base {\n static readonly moduleKey = \"tickets\" as const;\n /**\n\t *\n\t * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#claim tickets#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#claim\")\n async claim(id: number): Promise<Ticket> {\n return tickets_claim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Ticket));\n }\n\n /**\n\t *\n\t * You must be Staff+ to see tickets you did not create.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#show tickets#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#show\")\n async get(id: number): Promise<Ticket | null> {\n return tickets_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Ticket));\n }\n\n /**\n\t *\n\t * You must be Staff+ to see tickets you did not create.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#index tickets#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#index\")\n async search(options?: SearchTicketsOptions): Promise<Array<Ticket>> {\n return tickets_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Ticket));\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#unclaim tickets#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#unclaim\")\n async unclaim(id: number): Promise<Ticket> {\n return tickets_unclaim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, Ticket));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tickets-tickets\\#update tickets#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tickets-tickets\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tickets#update\")\n async update(id: number, options: UpdateTicketOptions): Promise<null> {\n return tickets_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { Upload as UploadData } from \"../generated/types.js\";\n\ninterface Upload extends UploadData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-Upload Upload}\n *\n * @see {@link https://e621.wiki/#model-Upload Documentation} for more details.\n */\n@Schema(\"Upload\")\nclass Upload extends Base<UploadData> {}\n\nexport default Upload;\n", "import { uploads_show, uploads_index, uploads_create } from \"../generated/sdk.js\";\nimport Upload from \"../models/Upload.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport { type NoV2Options, type PostFormat, type PostFormatOptions } from \"./posts/Format.js\";\n\nimport type { UploadsIndexData, UploadsCreateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchUploadsOptions extends TransformDataQueryToOptions<UploadsIndexData> {}\n/** @category Modules/Types */\nexport interface UploadPostOptions extends TransformDataBodyToOptions<UploadsCreateData> {}\n\n/** @category Modules */\nexport default class Uploads<PF extends PostFormatOptions = NoV2Options> extends Base<PF> {\n static readonly moduleKey = \"uploads\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Uploads-uploads\\#create uploads#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Uploads-uploads\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"uploads#create\")\n async create(options: UploadPostOptions): Promise<PostFormat<PF[\"v2\"], PF[\"mode\"]>> {\n return uploads_create({\n client: this.client,\n body: prefixKeys(options, \"upload\"),\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return this.e621.posts.get(data.post_id)\n .then((post) => {\n if (post === null) throw new Error(`Post not found after upload: ${data.post_id}`);\n return post as PostFormat<PF[\"v2\"], PF[\"mode\"]>;\n });\n });\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Uploads-uploads\\#show uploads#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Uploads-uploads\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"uploads#show\")\n async get(id: number): Promise<Upload | null> {\n return uploads_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, Upload));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Uploads-uploads\\#index uploads#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Uploads-uploads\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"uploads#index\")\n async search(options?: SearchUploadsOptions): Promise<Array<Upload>> {\n return uploads_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, Upload));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UploadWhitelist as UploadWhitelistData } from \"../generated/types.js\";\nimport type { UpdateUploadWhitelistOptions } from \"../modules/UploadWhitelists.js\";\n\ninterface UploadWhitelist extends UploadWhitelistData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-UploadWhitelist UploadWhitelist}\n *\n * @see {@link https://e621.wiki/#model-UploadWhitelist Documentation} for more details.\n */\n@Schema(\"UploadWhitelist\")\nclass UploadWhitelist extends Base<UploadWhitelistData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#destroy upload_whitelists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#destroy\")\n async delete(): Promise<null> {\n return this.e621.uploadWhitelists.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#update upload_whitelists#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#update\")\n async update(options: UpdateUploadWhitelistOptions): Promise<null> {\n return this.e621.uploadWhitelists.update(this.id, options);\n }\n}\n\nexport default UploadWhitelist;\n", "import {\n uploadWhitelists_isAllowed,\n uploadWhitelists_create,\n uploadWhitelists_destroy,\n uploadWhitelists_update,\n uploadWhitelists_index,\n} from \"../generated/sdk.js\";\nimport UploadWhitelist from \"../models/UploadWhitelist.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UploadWhitelistsIsAllowedResponses, UploadWhitelistsCreateData, UploadWhitelistsUpdateData, UploadWhitelistsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateUploadWhitelistOptions extends TransformDataBodyToOptions<UploadWhitelistsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateUploadWhitelistOptions extends TransformDataBodyToOptions<UploadWhitelistsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchUploadWhitelistsOptions extends TransformDataQueryToOptions<UploadWhitelistsIndexData> {}\n/** @category Modules/Types */\nexport interface UploadWhitelistsIsAllowedResponse extends GetResponse<UploadWhitelistsIsAllowedResponses, 200> {}\n\n/** @category Modules */\nexport default class UploadWhitelists extends Base {\n static readonly moduleKey = \"uploadWhitelists\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#is_allowed upload_whitelists#is_allowed}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#is_allowed Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#is_allowed\")\n async check(url: string): Promise<UploadWhitelistsIsAllowedResponse> {\n return uploadWhitelists_isAllowed({\n client: this.client,\n query: { url },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#create upload_whitelists#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#create\")\n async create(options: CreateUploadWhitelistOptions): Promise<UploadWhitelist> {\n return uploadWhitelists_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, UploadWhitelist));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#destroy upload_whitelists#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#destroy\")\n async delete(id: number): Promise<null> {\n return uploadWhitelists_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#index upload_whitelists#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#index\")\n async search(options?: SearchUploadWhitelistsOptions): Promise<Array<UploadWhitelist>> {\n return uploadWhitelists_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, UploadWhitelist));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#update upload_whitelists#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Upload_Whitelists-upload_whitelists\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"upload_whitelists#update\")\n async update(id: number, options: UpdateUploadWhitelistOptions): Promise<null> {\n return uploadWhitelists_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { User as UserData } from \"../generated/types.js\";\nimport type { UpdateStaffUserOptions } from \"../modules/StaffUsers.js\";\n\ninterface User extends UserData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-User User}\n *\n * @see {@link https://e621.wiki/#model-User Documentation} for more details.\n */\n@Schema(\"User\")\nclass User<D extends UserData = UserData> extends Base<D> {\n /**\n\t *\n\t * You must be Admin+. If editing an Admin+, you must be Owner+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#update staff/users#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/users#update\")\n async adminEdit(options: UpdateStaffUserOptions): Promise<null> {\n return this.e621.staffUsers.update(this.id, options);\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag. Cannot be used on staff.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#anonymize_confirm staff/users#anonymize_confirm}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#anonymize_confirm Documentation} for more details.\n\t */\n\t@OperationID(\"staff/users#anonymize_confirm\")\n async anonymize(): Promise<unknown> {\n return this.e621.staffUsers.anonymize(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#flush_favorites users#flush_favorites}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#flush_favorites Documentation} for more details.\n\t */\n\t@OperationID(\"users#flush_favorites\")\n async clearFavorites(): Promise<unknown> {\n return this.e621.users.clearFavorites(this.id);\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#disable_uploads users#disable_uploads}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#disable_uploads Documentation} for more details.\n\t */\n\t@OperationID(\"users#disable_uploads\")\n async disableUploads(reason?: string): Promise<string> {\n return this.e621.users.disableUploads(this.id, reason);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-maintenance/user/count_fixes\\#create maintenance/user/count_fixes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-maintenance/user/count_fixes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/count_fixes#create\")\n async fixCounts(): Promise<unknown> {\n return this.e621.users.fixCounts();\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#fix_counts users#fix_counts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#fix_counts Documentation} for more details.\n\t */\n\t@OperationID(\"users#fix_counts\")\n async staffFixCounts(): Promise<unknown> {\n return this.e621.users.staffFixCounts(this.id);\n }\n\n /**\n\t *\n\t * You must be Janitor+.\nThis endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#toggle_uploads users#toggle_uploads}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#toggle_uploads Documentation} for more details.\n\t */\n\t@OperationID(\"users#toggle_uploads\")\n async toggleUploads(): Promise<string> {\n return this.e621.users.toggleUploads(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#upload_limit users#upload_limit}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#upload_limit Documentation} for more details.\n\t */\n\t@OperationID(\"users#upload_limit\")\n async uploadLimit(): Promise<User> {\n return this.e621.users.uploadLimit(this.id)\n .then((res) => {\n if (res === null) throw new Error(`Got null getUploadLimit for user ${this.id}`);\n return res;\n });\n }\n}\n\nexport default User;\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport User from \"./User.js\";\n\nimport type { CurrentUser as CurrentUserData } from \"../generated/types.js\";\nimport type { UpdateAvatarCropOptions, UpdateCurrentUserOptions, UsersAvatarMenuResponse } from \"../modules/Users.js\";\n\ninterface CurrentUser extends Omit<CurrentUserData, \"last_logged_in_at\"> {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-CurrentUser CurrentUser}\n *\n * @see {@link https://e621.wiki/#model-CurrentUser Documentation} for more details.\n */\n@Schema(\"CurrentUser\")\nclass CurrentUser<D extends CurrentUserData = CurrentUserData> extends User<D> {\n /**\n * Narrowed from {@link User.last_logged_in_at} - always present for the current user.\n */\n declare last_logged_in_at: string;\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#avatar_menu users#avatar_menu}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#avatar_menu Documentation} for more details.\n\t */\n\t@OperationID(\"users#avatar_menu\")\n async avatarMenu(): Promise<UsersAvatarMenuResponse> {\n return this.e621.users.avatarMenu();\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#update users#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"users#update\")\n async update(options: UpdateCurrentUserOptions): Promise<null> {\n return this.e621.users.update(this.id, options);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-maintenance/user/avatars\\#update maintenance/user/avatars#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-maintenance/user/avatars\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/avatars#update\")\n async updateAvatarCrop(options: UpdateAvatarCropOptions): Promise<string> {\n return this.e621.users.updateAvatarCrop(options);\n }\n}\n\nexport default CurrentUser;\n", "import { Schema } from \"../util.js\";\n\nimport CurrentUser from \"./CurrentUser.js\";\n\nimport type { FullCurrentUser as FullCurrentUserData } from \"../generated/types.js\";\n\n// technically extends both FullUser and CurrentUser, but that isn't possible in javascript\ninterface FullCurrentUser extends FullCurrentUserData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-FullCurrentUser FullCurrentUser}\n *\n * @see {@link https://e621.wiki/#model-FullCurrentUser Documentation} for more details.\n */\n@Schema(\"FullCurrentUser\")\nclass FullCurrentUser extends CurrentUser<FullCurrentUserData> {}\n\nexport default FullCurrentUser;\n", "import { Schema } from \"../util.js\";\n\nimport User from \"./User.js\";\n\nimport type { FullUser as FullUserData } from \"../generated/types.js\";\n\ninterface FullUser extends FullUserData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-FullUser FullUser}\n *\n * @see {@link https://e621.wiki/#model-FullUser Documentation} for more details.\n */\n@Schema(\"FullUser\")\nclass FullUser extends User<FullUserData> {}\n\nexport default FullUser;\n", "import {\n users_flushFavorites,\n users_disableUploads,\n maintenanceUserCountFixes_create,\n users_avatarMenu,\n users_me,\n users_show,\n users_uploadLimit,\n users_index,\n users_fixCounts,\n users_toggleUploads,\n maintenanceUserAvatars_update,\n maintenanceUserDmailFilters_update,\n users_update,\n} from \"../generated/sdk.js\";\nimport FullCurrentUser from \"../models/FullCurrentUser.js\";\nimport FullUser from \"../models/FullUser.js\";\nimport User from \"../models/User.js\";\nimport { GetResponse, OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UsersAvatarMenuResponses, UsersIndexData, MaintenanceUserAvatarsUpdateData, UsersUpdateData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchUsersOptions extends TransformDataQueryToOptions<UsersIndexData> {}\n/** @category Modules/Types */\nexport interface UsersAvatarMenuResponse extends GetResponse<UsersAvatarMenuResponses, 200> {}\n/** @category Modules/Types */\nexport interface UpdateAvatarCropOptions extends TransformDataBodyToOptions<MaintenanceUserAvatarsUpdateData> {}\n/**\n * The spec's `dmail_filter_attributes` keys are malformed (missing an opening bracket) - use {@link Users.updateDmailFilter} or {@link DMail.updateFilter} instead.\n *\n * @category Modules/Types\n */\nexport interface UpdateCurrentUserOptions extends Omit<TransformDataBodyToOptions<UsersUpdateData>, \"id\" | \"words\"> {}\n\n/** @category Modules */\nexport default class Users extends Base {\n static readonly moduleKey = \"users\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#avatar_menu users#avatar_menu}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#avatar_menu Documentation} for more details.\n\t */\n\t@OperationID(\"users#avatar_menu\")\n async avatarMenu(): Promise<UsersAvatarMenuResponse> {\n return users_avatarMenu({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#flush_favorites users#flush_favorites}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#flush_favorites Documentation} for more details.\n\t */\n\t@OperationID(\"users#flush_favorites\")\n async clearFavorites(idOrName: string | number): Promise<string> {\n return users_flushFavorites({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#disable_uploads users#disable_uploads}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#disable_uploads Documentation} for more details.\n\t */\n\t@OperationID(\"users#disable_uploads\")\n async disableUploads(idOrName: string | number, body?: string): Promise<string> {\n return users_disableUploads({\n client: this.client,\n path: { idOrName },\n body: body === undefined ? undefined : { body },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-maintenance/user/count_fixes\\#create maintenance/user/count_fixes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-maintenance/user/count_fixes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/count_fixes#create\")\n async fixCounts(): Promise<string> {\n return maintenanceUserCountFixes_create({\n client: this.client,\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#show users#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"users#show\")\n async get(idOrName: string | number): Promise<FullUser | FullCurrentUser | null> {\n return users_show({\n client: this.client,\n path: { idOrName },\n }).then((res) => {\n const data = this._handleResponse(res, 200, false);\n if (data === null) return null;\n return \"blacklisted_tags\" in data ? new FullCurrentUser(this.e621, data) : new FullUser(this.e621, data);\n });\n }\n\n /**\n\t *\n\t * This will return the default settings for anonymous users if no authentication is used.\nThis most interesting part is probably the default blacklist, located in `blacklisted_tags`.\n\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#me users#me}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#me Documentation} for more details.\n\t */\n\t@OperationID(\"users#me\")\n async me(): Promise<FullCurrentUser> {\n return users_me({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true, FullCurrentUser));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#index users#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"users#index\")\n async search(options?: SearchUsersOptions): Promise<Array<FullCurrentUser | User>> {\n return users_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n return data.map(user => \"blacklisted_tags\" in user ? new FullCurrentUser(this.e621, user) : new User(this.e621, user));\n });\n }\n\n /**\n\t *\n\t * You must be Janitor+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#fix_counts users#fix_counts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#fix_counts Documentation} for more details.\n\t */\n\t@OperationID(\"users#fix_counts\")\n async staffFixCounts(idOrName: string | number): Promise<string> {\n return users_fixCounts({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Janitor+.\nThis endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#toggle_uploads users#toggle_uploads}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#toggle_uploads Documentation} for more details.\n\t */\n\t@OperationID(\"users#toggle_uploads\")\n async toggleUploads(idOrName: string | number): Promise<string> {\n return users_toggleUploads({\n client: this.client,\n path: { idOrName },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#update users#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"users#update\")\n async update(idOrName: string | number, options: UpdateCurrentUserOptions): Promise<null> {\n return users_update({\n client: this.client,\n path: { idOrName },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-maintenance/user/avatars\\#update maintenance/user/avatars#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-maintenance/user/avatars\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/avatars#update\")\n async updateAvatarCrop(options: UpdateAvatarCropOptions): Promise<string> {\n return maintenanceUserAvatars_update({\n client: this.client,\n body: options,\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-maintenance/user/dmail_filters\\#update maintenance/user/dmail_filters#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-maintenance/user/dmail_filters\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"maintenance/user/dmail_filters#update\")\n async updateDmailFilter(dmail_id: number, words: string): Promise<null> {\n return maintenanceUserDmailFilters_update({\n client: this.client,\n body: { words },\n query: {\n dmail_id,\n },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Users-users\\#upload_limit users#upload_limit}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Users-users\\#upload_limit Documentation} for more details.\n\t */\n\t@OperationID(\"users#upload_limit\")\n async uploadLimit(idOrName: string | number): Promise<FullCurrentUser | FullUser | null> {\n return users_uploadLimit({\n client: this.client,\n path: { idOrName },\n }).then((res) => {\n const data = this._handleResponse(res, 200, false);\n return data === null ? null : \"blacklisted_tags\" in data ? new FullCurrentUser(this.e621, data) : new FullUser(this.e621, data);\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UserFeedback as UserFeedbackData } from \"../generated/types.js\";\nimport type { UpdateUserFeedbackOptions } from \"../modules/UserFeedbacks.js\";\n\ninterface UserFeedback extends UserFeedbackData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-UserFeedback UserFeedback}\n *\n * @see {@link https://e621.wiki/#model-UserFeedback Documentation} for more details.\n */\n@Schema(\"UserFeedback\")\nclass UserFeedback extends Base<UserFeedbackData> {\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#delete user_feedbacks#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#delete\")\n async delete(): Promise<null> {\n return this.e621.userFeedbacks.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+, or the creator and Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#destroy user_feedbacks#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#destroy\")\n async destroy(): Promise<null> {\n return this.e621.userFeedbacks.destroy(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#undelete user_feedbacks#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#undelete\")\n async undelete(): Promise<null> {\n return this.e621.userFeedbacks.undelete(this.id);\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#update user_feedbacks#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#update\")\n async update(options: UpdateUserFeedbackOptions): Promise<null> {\n return this.e621.userFeedbacks.update(this.id, options);\n }\n}\n\nexport default UserFeedback;\n", "import {\n userFeedbacks_create,\n userFeedbacks_delete,\n userFeedbacks_destroy,\n userFeedbacks_update,\n userFeedbacks_show,\n userFeedbacks_index,\n userFeedbacks_undelete,\n} from \"../generated/sdk.js\";\nimport UserFeedback from \"../models/UserFeedback.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UserFeedbacksCreateData, UserFeedbacksUpdateData, UserFeedbacksIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateUserFeedbackOptions extends TransformDataBodyToOptions<UserFeedbacksCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateUserFeedbackOptions extends TransformDataBodyToOptions<UserFeedbacksUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchUserFeedbacksOptions extends TransformDataQueryToOptions<UserFeedbacksIndexData> {}\n\n/** @category Modules */\nexport default class UserFeedbacks extends Base {\n static readonly moduleKey = \"userFeedbacks\" as const;\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#create user_feedbacks#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#create\")\n async create(options: CreateUserFeedbackOptions): Promise<UserFeedback> {\n return userFeedbacks_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, UserFeedback));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#delete user_feedbacks#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#delete\")\n async delete(id: number): Promise<null> {\n return userFeedbacks_delete({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Admin+, or the creator and Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#destroy user_feedbacks#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#destroy\")\n async destroy(id: number): Promise<null> {\n return userFeedbacks_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Staff+ if the feedback is deleted.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#show user_feedbacks#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#show\")\n async get(id: number): Promise<UserFeedback | null> {\n return userFeedbacks_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, UserFeedback));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#index user_feedbacks#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#index\")\n async search(options?: SearchUserFeedbacksOptions): Promise<Array<UserFeedback>> {\n return userFeedbacks_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, UserFeedback));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#undelete user_feedbacks#undelete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#undelete Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#undelete\")\n async undelete(id: number): Promise<null> {\n return userFeedbacks_undelete({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#update user_feedbacks#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Feedbacks-user_feedbacks\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"user_feedbacks#update\")\n async update(id: number, options: UpdateUserFeedbackOptions): Promise<null> {\n return userFeedbacks_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UserNameChangeRequest as UserNameChangeRequestData } from \"../generated/types.js\";\n\ninterface UserNameChangeRequest extends UserNameChangeRequestData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-UserNameChangeRequest UserNameChangeRequest}\n *\n * @see {@link https://e621.wiki/#model-UserNameChangeRequest Documentation} for more details.\n */\n@Schema(\"UserNameChangeRequest\")\nclass UserNameChangeRequest extends Base<UserNameChangeRequestData> {\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#destroy user_name_change_requests#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"user_name_change_requests#destroy\")\n async delete(): Promise<unknown> {\n return this.e621.userNameChangeRequests.delete(this.id);\n }\n}\n\nexport default UserNameChangeRequest;\n", "import { userNameChangeRequests_create, userNameChangeRequests_destroy, userNameChangeRequests_show, userNameChangeRequests_index } from \"../generated/sdk.js\";\nimport UserNameChangeRequest from \"../models/UserNameChangeRequest.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { UserNameChangeRequestsCreateData, UserNameChangeRequestsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateUserNameChangeRequestOptions extends TransformDataBodyToOptions<UserNameChangeRequestsCreateData> {}\n/** @category Modules/Types */\nexport interface SearchUserNameChangeRequestsOptions extends TransformDataQueryToOptions<UserNameChangeRequestsIndexData> {}\n\n/** @category Modules */\nexport default class UserNameChangeRequests extends Base {\n static readonly moduleKey = \"userNameChangeRequests\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#create user_name_change_requests#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"user_name_change_requests#create\")\n async create(options: CreateUserNameChangeRequestOptions): Promise<unknown> {\n return userNameChangeRequests_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#destroy user_name_change_requests#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"user_name_change_requests#destroy\")\n async delete(id: number): Promise<unknown> {\n return userNameChangeRequests_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be the creator of the request or Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#show user_name_change_requests#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"user_name_change_requests#show\")\n async get(id: number): Promise<UserNameChangeRequest | null> {\n return userNameChangeRequests_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, UserNameChangeRequest));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#index user_name_change_requests#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Name_Change_Requests-user_name_change_requests\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"user_name_change_requests#index\")\n async search(options?: SearchUserNameChangeRequestsOptions): Promise<Array<UserNameChangeRequest>> {\n return userNameChangeRequests_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, UserNameChangeRequest));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { WikiPage as WikiPageData } from \"../generated/types.js\";\nimport type { UpdateWikiPageOptions } from \"../modules/WikiPages.js\";\n\ninterface WikiPage extends WikiPageData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-WikiPage WikiPage}\n *\n * @see {@link https://e621.wiki/#model-WikiPage Documentation} for more details.\n */\n@Schema(\"WikiPage\")\nclass WikiPage extends Base<WikiPageData> {\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#destroy wiki_pages#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#destroy\")\n async delete(): Promise<null> {\n return this.e621.wikiPages.delete(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert wiki_pages#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#revert\")\n async revert(version_id: number): Promise<null> {\n return this.e621.wikiPages.revert(this.id, version_id);\n }\n\n /**\n\t *\n\t * You must be Staff+ if the wiki page is locked.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#update wiki_pages#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#update\")\n async update(options: UpdateWikiPageOptions): Promise<null> {\n return this.e621.wikiPages.update(this.id, options);\n }\n}\n\nexport default WikiPage;\n", "import {\n wikiPages_create,\n wikiPages_destroy,\n wikiPages_update,\n wikiPages_show,\n wikiPages_revert,\n wikiPages_index,\n} from \"../generated/sdk.js\";\nimport WikiPage from \"../models/WikiPage.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { WikiPagesCreateData, WikiPagesUpdateData, WikiPagesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface CreateWikiPageOptions extends TransformDataBodyToOptions<WikiPagesCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateWikiPageOptions extends TransformDataBodyToOptions<WikiPagesUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchWikiPagesOptions extends TransformDataQueryToOptions<WikiPagesIndexData> {}\n\n/** @category Modules */\nexport default class WikiPages extends Base {\n static readonly moduleKey = \"wikiPages\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#create wiki_pages#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#create\")\n async create(options: CreateWikiPageOptions): Promise<WikiPage> {\n return wikiPages_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, WikiPage));\n }\n\n /**\n\t *\n\t * You must be Admin+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#destroy wiki_pages#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#destroy\")\n async delete(id: number): Promise<null> {\n return wikiPages_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#show wiki_pages#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#show\")\n async get(id: number): Promise<WikiPage | null> {\n return wikiPages_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, WikiPage));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert wiki_pages#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#revert\")\n async revert(id: number, version_id: number): Promise<null> {\n return wikiPages_revert({\n client: this.client,\n path: { id },\n query: { version_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#index wiki_pages#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#index\")\n async search(options?: SearchWikiPagesOptions): Promise<Array<WikiPage>> {\n return wikiPages_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, WikiPage));\n }\n\n /**\n\t *\n\t * You must be Staff+ if the wiki page is locked.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#update wiki_pages#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#update\")\n async update(id: number, options: UpdateWikiPageOptions): Promise<null> {\n return wikiPages_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { WikiPageVersion as WikiPageVersionData } from \"../generated/types.js\";\n\ninterface WikiPageVersion extends WikiPageVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-WikiPageVersion WikiPageVersion}\n *\n * @see {@link https://e621.wiki/#model-WikiPageVersion Documentation} for more details.\n */\n@Schema(\"WikiPageVersion\")\nclass WikiPageVersion extends Base<WikiPageVersionData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert wiki_pages#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Pages-wiki_pages\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_pages#revert\")\n async revertTo(): Promise<null> {\n return this.e621.wikiPages.revert(this.wiki_page_id, this.id);\n }\n}\n\nexport default WikiPageVersion;\n", "import { wikiPageVersions_show, wikiPageVersions_index } from \"../generated/sdk.js\";\nimport WikiPageVersion from \"../models/WikiPageVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { WikiPageVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchWikiPageVersionsOptions extends TransformDataQueryToOptions<WikiPageVersionsIndexData> {}\n\n/** @category Modules */\nexport default class WikiPageVersions extends Base {\n static readonly moduleKey = \"wikiPageVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Page_Versions-wiki_page_versions\\#show wiki_page_versions#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Page_Versions-wiki_page_versions\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_page_versions#show\")\n async get(id: number): Promise<WikiPageVersion | null> {\n return wikiPageVersions_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, WikiPageVersion));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Wiki_Page_Versions-wiki_page_versions\\#index wiki_page_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Wiki_Page_Versions-wiki_page_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"wiki_page_versions#index\")\n async search(options?: SearchWikiPageVersionsOptions): Promise<Array<WikiPageVersion>> {\n return wikiPageVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, WikiPageVersion));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { CommentVote as CommentVoteData } from \"../generated/types.js\";\n\ninterface CommentVote extends CommentVoteData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-CommentVote CommentVote}\n *\n * @see {@link https://e621.wiki/#model-CommentVote Documentation} for more details.\n */\n@Schema(\"CommentVote\")\nclass CommentVote extends Base<CommentVoteData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy comment_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#destroy\")\n async delete(): Promise<null> {\n return this.e621.commentVotes.unvote(this.comment_id);\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors if ids is not provided.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#lock comment_votes#lock}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#lock Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#lock\")\n async lock(): Promise<null> {\n return this.e621.commentVotes.lock([this.id]);\n }\n\n /**\n\t *\n\t * You must be Admin+. Errors if ids is not provided.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#delete comment_votes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#delete\")\n async staffDelete(): Promise<null> {\n return this.e621.commentVotes.delete([this.id]);\n }\n}\n\nexport default CommentVote;\n", "import { commentVotes_create, commentVotes_delete, commentVotes_destroy, commentVotes_lock, commentVotes_index } from \"../generated/sdk.js\";\nimport CommentVote from \"../models/CommentVote.js\";\nimport { GetResponse, OperationID, type ExtractValue, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { CommentVotesCreateData, CommentVotesCreateResponses, CommentVotesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport type CommentVoteScore = ExtractValue<\"score\", CommentVotesCreateData>;\n/** @category Modules/Types */\nexport interface CommentVotesCreateResponse extends GetResponse<CommentVotesCreateResponses, 200> {}\n/** @category Modules/Types */\nexport interface SearchCommentVotesOptions extends TransformDataQueryToOptions<CommentVotesIndexData> {}\n\n/** @category Modules */\nexport default class CommentVotes extends Base {\n static readonly moduleKey = \"commentVotes\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#create comment_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#create\")\n async create(id: number, score: CommentVoteScore, no_unvote?: boolean): Promise<CommentVotesCreateResponse> {\n return commentVotes_create({\n client: this.client,\n path: { id },\n query: { no_unvote, score },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+. Errors if ids is not provided.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#delete comment_votes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#delete\")\n async delete(ids: Array<number>): Promise<null> {\n return commentVotes_delete({\n client: this.client,\n query: { ids: ids.join(\",\") },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors if ids is not provided.\n\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#lock comment_votes#lock}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#lock Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#lock\")\n async lock(ids: Array<number>): Promise<null> {\n return commentVotes_lock({\n client: this.client,\n query: { ids: ids.join(\",\") },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#index comment_votes#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#index\")\n async search(options?: SearchCommentVotesOptions): Promise<Array<CommentVote>> {\n return commentVotes_index({\n client: this.client,\n query: options,\n }).then(res => this._handleResponse(res, 200, true, CommentVote));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy comment_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Comment_Votes-comment_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"comment_votes#destroy\")\n async unvote(id: number): Promise<null> {\n return commentVotes_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { dtextPreviews_create } from \"../generated/sdk.js\";\nimport { type DtextPreviewsCreateResponses } from \"../generated/types.js\";\nimport { GetResponse, OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface DtextPreviewsCreateResponse extends GetResponse<DtextPreviewsCreateResponses, 200> {}\n\n/** @category Modules */\nexport default class DText extends Base {\n static readonly moduleKey = \"dtext\" as const;\n /**\n\t *\n\t * Note while this route does not require auth, without auth it requires a CSRF token. For that reason it has been marked as requiring auth.\n\t *\n\t * @requiresApiKeyAuth\n\t * @requiresCsrfToken\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DText-dtext_previews\\#create dtext_previews#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DText-dtext_previews\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"dtext_previews#create\")\n async preview(body: string): Promise<DtextPreviewsCreateResponse> {\n return dtextPreviews_create({\n client: this.client,\n body: { body },\n }).then(res => this._handleResponse(res, 200, true));\n }\n}\n", "import { popular_index } from \"../generated/sdk.js\";\nimport { OperationID, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\nimport { type AnyPostData, type NoV2Options, type PostFormat, type PostFormatOptions, wrapPosts } from \"./posts/Format.js\";\n\nimport type { Client } from \"../generated/client/types.js\";\nimport type { LegacyPost as LegacyPostData, PopularIndexData } from \"../generated/types.js\";\nimport type E621 from \"../index.js\";\n\n/** @category Modules/Types */\nexport interface GetPopularPostsOptions extends TransformDataQueryToOptions<PopularIndexData> {}\n\n/** @category Modules */\nexport default class Popular<PF extends PostFormatOptions = NoV2Options> extends Base<PF> {\n static readonly moduleKey = \"popular\" as const;\n protected readonly defaultFormat: PF;\n /** @param defaultFormat - The v2/mode format to fall back to when `get()` is called without explicit v2/mode options. */\n constructor(e621: E621<PF> | undefined, client: Client, defaultFormat: PF = {} as PF) {\n super(e621, client);\n this.defaultFormat = defaultFormat;\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Popular-popular\\#index popular#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Popular-popular\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"popular#index\")\n async get<const O extends GetPopularPostsOptions = PF>(options?: O): Promise<Array<PostFormat<O[\"v2\"], O[\"mode\"], PF>>> {\n const v2 = options?.v2 ?? this.defaultFormat.v2;\n const mode = options?.mode ?? this.defaultFormat.mode;\n return popular_index({\n client: this.client,\n query: { ...options, v2, mode },\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = (v2 ? data : (data as { posts: Array<LegacyPostData> }).posts) as Array<AnyPostData>;\n return wrapPosts(this.e621, raw, v2, mode) as Array<PostFormat<O[\"v2\"], O[\"mode\"], PF>>;\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostApproval as PostApprovalData } from \"../generated/types.js\";\n\ninterface PostApproval extends PostApprovalData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostApproval PostApproval}\n *\n * @see {@link https://e621.wiki/#model-PostApproval Documentation} for more details.\n */\n@Schema(\"PostApproval\")\nclass PostApproval extends Base<PostApprovalData> {\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. The response does not differ for success or failure.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy staff/post/approvals#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/approvals#destroy\")\n async delete(): Promise<null> {\n return this.e621.postApprovals.delete(this.id);\n }\n}\n\nexport default PostApproval;\n", "import { staffPostApprovals_create, postApprovals_index, staffPostApprovals_destroy } from \"../generated/sdk.js\";\nimport { type PostApprovalsIndexData } from \"../generated/types.js\";\nimport PostApproval from \"../models/PostApproval.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface SearchPostApprovalsOptions extends TransformDataQueryToOptions<PostApprovalsIndexData> {}\n\n/** @category Modules */\nexport default class PostApprovals extends Base {\n static readonly moduleKey = \"postApprovals\" as const;\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#create staff/post/approvals#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/approvals#create\")\n async create(post_id: number): Promise<null> {\n return staffPostApprovals_create({\n client: this.client,\n body: { post_id },\n }).then((res) => {\n this._handleResponse(res, 201, true); // 201 returns an empty object, note 204 here is an error\n return null;\n });\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission. The response does not differ for success or failure.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy staff/post/approvals#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-staff/post/approvals\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/approvals#destroy\")\n async delete(post_id: number): Promise<null> {\n return staffPostApprovals_destroy({\n client: this.client,\n body: { post_id },\n }).then(res => this._handleResponse(res, 204, true)); // 204 may be success or failure\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Approvals-post_approvals\\#index post_approvals#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Approvals-post_approvals\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_approvals#index\")\n async search(options?: SearchPostApprovalsOptions): Promise<Array<PostApproval>> {\n return postApprovals_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PostApproval));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostDisapproval as PostDisapprovalData } from \"../generated/types.js\";\n\ninterface PostDisapproval extends PostDisapprovalData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostDisapproval PostDisapproval}\n *\n * @see {@link https://e621.wiki/#model-PostDisapproval Documentation} for more details.\n */\n@Schema(\"PostDisapproval\")\nclass PostDisapproval extends Base<PostDisapprovalData> {}\n\nexport default PostDisapproval;\n", "import { staffPostDisapprovals_create, staffPostDisapprovals_index } from \"../generated/sdk.js\";\nimport { type StaffPostDisapprovalsCreateData, type StaffPostDisapprovalsIndexData } from \"../generated/types.js\";\nimport PostDisapproval from \"../models/PostDisapproval.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface CreatePostDisapprovalOptions extends TransformDataBodyToOptions<StaffPostDisapprovalsCreateData> {}\n/** @category Modules/Types */\nexport interface DisapprovePostOptions extends Omit<CreatePostDisapprovalOptions, \"post_id\"> {}\n/** @category Modules/Types */\nexport interface SearchPostDisapprovalsOptions extends TransformDataQueryToOptions<StaffPostDisapprovalsIndexData> {}\n\n/** @category Modules */\nexport default class PostDisapprovals extends Base {\n static readonly moduleKey = \"postDisapprovals\" as const;\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#create staff/post/disapprovals#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/disapprovals#create\")\n async create(options: CreatePostDisapprovalOptions): Promise<PostDisapproval> {\n return staffPostDisapprovals_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, PostDisapproval));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#index staff/post/disapprovals#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Disapprovals-staff/post/disapprovals\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/post/disapprovals#index\")\n async search(options?: SearchPostDisapprovalsOptions): Promise<Array<PostDisapproval>> {\n return staffPostDisapprovals_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PostDisapproval));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostEvent as PostEventData } from \"../generated/types.js\";\n\ninterface PostEvent extends PostEventData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostEvent PostEvent}\n *\n * @see {@link https://e621.wiki/#model-PostEvent Documentation} for more details.\n */\n@Schema(\"PostEvent\")\nclass PostEvent extends Base<PostEventData> {}\n\nexport default PostEvent;\n", "import { postEvents_index } from \"../generated/sdk.js\";\nimport PostEvent from \"../models/PostEvent.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostEvent as PostEventData, PostEventsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchPostEventsOptions extends TransformDataQueryToOptions<PostEventsIndexData> {}\n\n/** @category Modules */\nexport default class PostEvents extends Base {\n static readonly moduleKey = \"postEvents\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Events-post_events\\#index post_events#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Events-post_events\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_events#index\")\n async search(options?: SearchPostEventsOptions): Promise<Array<PostEvent>> {\n return postEvents_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\", \"v2\"]),\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const raw = options?.v2 ? data as Array<PostEventData> : (data as { post_events: Array<PostEventData> }).post_events;\n return raw.map(item => new PostEvent(this.e621, item));\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostFlag as PostFlagData } from \"../generated/types.js\";\n\ninterface PostFlag extends PostFlagData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostFlag PostFlag}\n *\n * @see {@link https://e621.wiki/#model-PostFlag Documentation} for more details.\n */\n@Schema(\"PostFlag\")\nclass PostFlag extends Base<PostFlagData> {\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#clear_note post_flags#clear_note}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#clear_note Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#clear_note\")\n async clearNote(): Promise<PostFlag> {\n return this.e621.postFlags.clearNote(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_flags\\#destroy post_flags#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_flags\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#destroy\")\n async resolve(): Promise<null> {\n return this.e621.postFlags.resolve(this.post_id);\n }\n}\n\nexport default PostFlag;\n", "import { postFlags_clearNote, postFlags_create, postFlags_destroy, postFlags_show, postFlags_index } from \"../generated/sdk.js\";\nimport { type PostFlagsCreateData, type PostFlagsIndexData } from \"../generated/types.js\";\nimport PostFlag from \"../models/PostFlag.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface CreatePostFlagOptions extends TransformDataBodyToOptions<PostFlagsCreateData> {}\n/** @category Modules/Types */\nexport interface FlagPostOptions extends Omit<CreatePostFlagOptions, \"post_id\"> {}\n/** @category Modules/Types */\nexport interface SearchPostFlagsOptions extends TransformDataQueryToOptions<PostFlagsIndexData> {}\n\n/** @category Modules */\nexport default class PostFlags extends Base {\n static readonly moduleKey = \"postFlags\" as const;\n /**\n\t *\n\t * You must be Janitor+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#clear_note post_flags#clear_note}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#clear_note Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#clear_note\")\n async clearNote(id: number): Promise<PostFlag> {\n return postFlags_clearNote({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, PostFlag));\n }\n\n /**\n\t *\n\t * Will error if post_id is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#create post_flags#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#create\")\n async create(options: CreatePostFlagOptions): Promise<PostFlag> {\n return postFlags_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 201, true, PostFlag));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#show post_flags#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#show\")\n async get(id: number): Promise<PostFlag | null> {\n return postFlags_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, PostFlag));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-post_flags\\#destroy post_flags#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-post_flags\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#destroy\")\n async resolve(post_id: number): Promise<null> {\n return postFlags_destroy({\n client: this.client,\n path: { id: post_id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#index post_flags#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Flags-post_flags\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_flags#index\")\n async search(options?: SearchPostFlagsOptions): Promise<Array<PostFlag>> {\n return postFlags_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PostFlag));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type Post from \"./Post.js\";\nimport type { PostReplacement as PostReplacementData } from \"../generated/types.js\";\n\ninterface PostReplacement extends PostReplacementData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostReplacement PostReplacement}\n *\n * @see {@link https://e621.wiki/#model-PostReplacement Documentation} for more details.\n */\n@Schema(\"PostReplacement\")\nclass PostReplacement extends Base<PostReplacementData> {\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#approve post_replacements#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#approve\")\n async approve(): Promise<null> {\n return this.e621.postReplacements.approve(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#destroy post_replacements#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#destroy\")\n async delete(): Promise<null> {\n return this.e621.postReplacements.delete(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#promote post_replacements#promote}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#promote Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#promote\")\n async promote(): Promise<Post> {\n return this.e621.postReplacements.promote(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#reject post_replacements#reject}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#reject Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#reject\")\n async reject(): Promise<null> {\n return this.e621.postReplacements.reject(this.id);\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#toggle_penalize post_replacements#toggle_penalize}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#toggle_penalize Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#toggle_penalize\")\n async togglePenalize(): Promise<null> {\n return this.e621.postReplacements.togglePenalize(this.id);\n }\n}\n\nexport default PostReplacement;\n", "import {\n postReplacements_approve,\n postReplacements_create,\n postReplacements_destroy,\n postReplacements_promote,\n postReplacements_reject,\n postReplacements_index,\n postReplacements_togglePenalize,\n} from \"../generated/sdk.js\";\nimport {\n type PostReplacementsCreateResponses,\n type LegacyPost as LegacyPostData,\n type PostReplacementsIndexData,\n type PostReplacementsCreateData,\n} from \"../generated/types.js\";\nimport Post from \"../models/Post.js\";\nimport PostReplacement from \"../models/PostReplacement.js\";\nimport {\n GetResponse,\n OperationID,\n prefixKeys,\n type TransformDataBodyToOptions,\n type TransformDataQueryToOptions,\n} from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface CreatePostReplacementOptions extends TransformDataBodyToOptions<PostReplacementsCreateData> {}\n/** @category Modules/Types */\nexport interface SearchPostReplacementsOptions extends TransformDataQueryToOptions<PostReplacementsIndexData> {}\n/** @category Modules/Types */\nexport interface PostReplacementsCreateResponse extends GetResponse<PostReplacementsCreateResponses, 200> {}\n\n/** @category Modules */\nexport default class PostReplacements extends Base {\n static readonly moduleKey = \"postReplacements\" as const;\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#approve post_replacements#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#approve\")\n async approve(id: number): Promise<null> {\n return postReplacements_approve({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#create post_replacements#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#create\")\n async create(options: CreatePostReplacementOptions): Promise<PostReplacementsCreateResponse> {\n return postReplacements_create({\n client: this.client,\n body: prefixKeys(options, \"post_replacement\"),\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#destroy post_replacements#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#destroy\")\n async delete(id: number): Promise<null> {\n return postReplacements_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#promote post_replacements#promote}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#promote Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#promote\")\n async promote(id: number): Promise<Post> {\n return postReplacements_promote({\n client: this.client,\n path: { id },\n }).then((res) => {\n const data = this._handleResponse(res, 201, true);\n // NOTE: the spec still references the \"Post\" (v2 base) schema here, but this endpoint has no v2 param - the response is actually legacy-shaped.\n return new Post(this.e621, data.post as unknown as LegacyPostData);\n });\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#reject post_replacements#reject}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#reject Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#reject\")\n async reject(id: number): Promise<null> {\n return postReplacements_reject({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Rejected replacements can only be seen by staff.\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#index post_replacements#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#index\")\n async search(options?: SearchPostReplacementsOptions): Promise<Array<PostReplacement>> {\n return postReplacements_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, PostReplacement));\n }\n\n /**\n\t *\n\t * You must have the \"Approve Posts\" permission.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#toggle_penalize post_replacements#toggle_penalize}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Replacements-post_replacements\\#toggle_penalize Documentation} for more details.\n\t */\n\t@OperationID(\"post_replacements#toggle_penalize\")\n async togglePenalize(id: number): Promise<null> {\n return postReplacements_togglePenalize({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { relatedTags_bulk } from \"../generated/sdk.js\";\nimport { type RelatedTagsBulkResponses, type RelatedTagsBulkData } from \"../generated/types.js\";\nimport { GetResponse, OperationID, type TransformDataBodyToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface BulkRelatedTagsOptions extends TransformDataBodyToOptions<RelatedTagsBulkData> {}\n/** @category Modules/Types */\nexport interface RelatedTagsBulkResponse extends GetResponse<RelatedTagsBulkResponses, 200> {}\n\n/** @category Modules */\nexport default class RelatedTags extends Base {\n static readonly moduleKey = \"relatedTags\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Related_Tags-related_tags\\#bulk related_tags#bulk}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Related_Tags-related_tags\\#bulk Documentation} for more details.\n\t */\n\t@OperationID(\"related_tags#bulk\")\n async bulk(options?: BulkRelatedTagsOptions): Promise<RelatedTagsBulkResponse> {\n return relatedTags_bulk({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagAlias as TagAliasData } from \"../generated/types.js\";\nimport type { UpdateTagAliasOptions } from \"../modules/TagAliases.js\";\n\ninterface TagAlias extends TagAliasData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-TagAlias TagAlias}\n *\n * @see {@link https://e621.wiki/#model-TagAlias Documentation} for more details.\n */\n@Schema(\"TagAlias\")\nclass TagAlias extends Base<TagAliasData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#approve tag_aliases#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#approve\")\n async approve(): Promise<null> {\n return this.e621.tagAliases.approve(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the request (if pending), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#destroy tag_aliases#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#destroy\")\n async reject(): Promise<null> {\n return this.e621.tagAliases.reject(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#update tag_aliases#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#update\")\n async update(options: UpdateTagAliasOptions): Promise<null> {\n return this.e621.tagAliases.update(this.id, options);\n }\n}\n\nexport default TagAlias;\n", "import {\n tagAliases_approve,\n tagAliasRequests_create,\n tagAliases_update,\n tagAliases_show,\n tagAliases_destroy,\n tagAliases_index,\n} from \"../generated/sdk.js\";\nimport { type TagAliasesUpdateData, type TagAliasRequestsCreateData, type TagAliasesIndexData } from \"../generated/types.js\";\nimport TagAlias from \"../models/TagAlias.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface CreateTagAliasOptions extends TransformDataBodyToOptions<TagAliasRequestsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateTagAliasOptions extends TransformDataBodyToOptions<TagAliasesUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchTagAliasesOptions extends TransformDataQueryToOptions<TagAliasesIndexData> {}\n\n/** @category Modules */\nexport default class TagAliases extends Base {\n static readonly moduleKey = \"tagAliases\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#approve tag_aliases#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#approve\")\n async approve(id: number): Promise<null> {\n return tagAliases_approve({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Errors will result in a 406 with no information.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_alias_requests\\#create tag_alias_requests#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_alias_requests\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"tag_alias_requests#create\")\n async create(options: CreateTagAliasOptions): Promise<unknown> {\n return tagAliasRequests_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#show tag_aliases#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#show\")\n async get(id: number): Promise<TagAlias | null> {\n return tagAliases_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, TagAlias));\n }\n\n /**\n\t *\n\t * You must be the creator of the request (if pending), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#destroy tag_aliases#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#destroy\")\n async reject(id: number): Promise<null> {\n return tagAliases_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#index tag_aliases#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#index\")\n async search(options?: SearchTagAliasesOptions): Promise<Array<TagAlias>> {\n return tagAliases_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, TagAlias));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#update tag_aliases#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Aliases-tag_aliases\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tag_aliases#update\")\n async update(id: number, options: UpdateTagAliasOptions): Promise<null> {\n return tagAliases_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagCorrection as TagCorrectionData } from \"../generated/types.js\";\n\ninterface TagCorrection extends TagCorrectionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-TagCorrection TagCorrection}\n *\n * @see {@link https://e621.wiki/#model-TagCorrection Documentation} for more details.\n */\n@Schema(\"TagCorrection\")\nclass TagCorrection extends Base<TagCorrectionData> {\n async correct(): Promise<string> {\n return this.e621.tagCorrections.correct(this.tag.id);\n }\n}\n\nexport default TagCorrection;\n", "import { tagCorrections_create, tagCorrections_show } from \"../generated/sdk.js\";\nimport TagCorrection from \"../models/TagCorrection.js\";\nimport { OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules */\nexport default class TagCorrections extends Base {\n static readonly moduleKey = \"tagCorrections\" as const;\n /**\n\t *\n\t * You must be Staff+. `commit=Fix` must be set.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tag_corrections\\#create tag_corrections#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tag_corrections\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"tag_corrections#create\")\n async correct(id: number): Promise<string> {\n return tagCorrections_create({\n client: this.client,\n path: { id },\n body: { commit: \"Fix\" },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tags-tag_corrections\\#show tag_corrections#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tags-tag_corrections\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tag_corrections#show\")\n async get(id: number): Promise<TagCorrection> {\n return tagCorrections_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, TagCorrection));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagImplication as TagImplicationData } from \"../generated/types.js\";\nimport type { UpdateTagImplicationOptions } from \"../modules/TagImplications.js\";\n\ninterface TagImplication extends TagImplicationData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-TagImplication TagImplication}\n *\n * @see {@link https://e621.wiki/#model-TagImplication Documentation} for more details.\n */\n@Schema(\"TagImplication\")\nclass TagImplication extends Base<TagImplicationData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#approve tag_implications#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#approve\")\n async approve(): Promise<null> {\n return this.e621.tagImplications.approve(this.id);\n }\n\n /**\n\t *\n\t * You must be the creator of the request (if pending), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#destroy tag_implications#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#destroy\")\n async reject(): Promise<null> {\n return this.e621.tagImplications.reject(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#update tag_implications#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#update\")\n async update(options: UpdateTagImplicationOptions): Promise<null> {\n return this.e621.tagImplications.update(this.id, options);\n }\n}\n\nexport default TagImplication;\n", "import {\n tagImplications_approve,\n tagImplicationRequests_create,\n tagImplications_update,\n tagImplications_show,\n tagImplications_destroy,\n tagImplications_index,\n} from \"../generated/sdk.js\";\nimport { type TagImplicationsUpdateData, type TagImplicationRequestsCreateData, type TagImplicationsIndexData } from \"../generated/types.js\";\nimport TagImplication from \"../models/TagImplication.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface CreateTagImplicationOptions extends TransformDataBodyToOptions<TagImplicationRequestsCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateTagImplicationOptions extends TransformDataBodyToOptions<TagImplicationsUpdateData> {}\n/** @category Modules/Types */\nexport interface SearchTagImplicationsOptions extends TransformDataQueryToOptions<TagImplicationsIndexData> {}\n\n/** @category Modules */\nexport default class TagImplications extends Base {\n static readonly moduleKey = \"tagImplications\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#approve tag_implications#approve}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#approve Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#approve\")\n async approve(id: number): Promise<null> {\n return tagImplications_approve({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * Errors will result in a 406 with no information.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implication_requests\\#create tag_implication_requests#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implication_requests\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implication_requests#create\")\n async create(options: CreateTagImplicationOptions): Promise<unknown> {\n return tagImplicationRequests_create({\n client: this.client,\n body: options,\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#show tag_implications#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#show\")\n async get(id: number): Promise<TagImplication | null> {\n return tagImplications_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, TagImplication));\n }\n\n /**\n\t *\n\t * You must be the creator of the request (if pending), or Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#destroy tag_implications#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#destroy\")\n async reject(id: number): Promise<null> {\n return tagImplications_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#index tag_implications#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#index\")\n async search(options?: SearchTagImplicationsOptions): Promise<Array<TagImplication>> {\n return tagImplications_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, TagImplication));\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#update tag_implications#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Implications-tag_implications\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"tag_implications#update\")\n async update(id: number, options: UpdateTagImplicationOptions): Promise<null> {\n return tagImplications_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagTypeVersion as TagTypeVersionData } from \"../generated/types.js\";\n\ninterface TagTypeVersion extends TagTypeVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-TagTypeVersion TagTypeVersion}\n *\n * @see {@link https://e621.wiki/#model-TagTypeVersion Documentation} for more details.\n */\n@Schema(\"TagTypeVersion\")\nclass TagTypeVersion extends Base<TagTypeVersionData> {}\n\nexport default TagTypeVersion;\n", "import { tagTypeVersions_index } from \"../generated/sdk.js\";\nimport TagTypeVersion from \"../models/TagTypeVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { TagTypeVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchTagTypeVersionsOptions extends TransformDataQueryToOptions<TagTypeVersionsIndexData> {}\n\n/** @category Modules */\nexport default class TagTypeVersions extends Base {\n static readonly moduleKey = \"tagTypeVersions\" as const;\n /**\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Tag_Type_Versions-tag_type_versions\\#index tag_type_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Tag_Type_Versions-tag_type_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"tag_type_versions#index\")\n async search(options?: SearchTagTypeVersionsOptions): Promise<Array<TagTypeVersion>> {\n return tagTypeVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, TagTypeVersion));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostVote as PostVoteData } from \"../generated/types.js\";\n\ninterface PostVote extends PostVoteData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostVote PostVote}\n *\n * @see {@link https://e621.wiki/#model-PostVote Documentation} for more details.\n */\n@Schema(\"PostVote\")\nclass PostVote extends Base<PostVoteData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#destroy\")\n async delete(): Promise<null> {\n return this.e621.postVotes.unvote(this.post_id);\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors if ids is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#lock post_votes#lock}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#lock Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#lock\")\n async lock(): Promise<null> {\n return this.e621.postVotes.lock([this.id]);\n }\n\n /**\n\t *\n\t * You must be Admin+. Errors if ids is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#delete post_votes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#delete\")\n async staffDelete(): Promise<null> {\n return this.e621.postVotes.delete([this.id]);\n }\n}\n\nexport default PostVote;\n", "import { postVotes_create, postVotes_delete, postVotes_destroy, postVotes_lock, postVotes_index } from \"../generated/sdk.js\";\nimport PostVote from \"../models/PostVote.js\";\nimport { GetResponse, OperationID, type ExtractValue, TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostVotesCreateData, PostVotesCreateResponses, PostVotesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport type PostVoteScore = ExtractValue<\"score\", PostVotesCreateData>;\n/** @category Modules/Types */\nexport interface PostVotesCreateResponse extends GetResponse<PostVotesCreateResponses, 200> {}\n/** @category Modules/Types */\nexport interface SearchPostVotesOptions extends TransformDataQueryToOptions<PostVotesIndexData> {}\n\n/** @category Modules */\nexport default class PostVotes extends Base {\n static readonly moduleKey = \"postVotes\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#create post_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#create\")\n async create(id: number, score: PostVoteScore, no_unvote?: boolean): Promise<PostVotesCreateResponse> {\n return postVotes_create({\n client: this.client,\n path: { id },\n query: { no_unvote, score },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * You must be Admin+. Errors if ids is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#delete post_votes#delete}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#delete Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#delete\")\n async delete(ids: Array<number>): Promise<null> {\n return postVotes_delete({\n client: this.client,\n query: { ids: ids.join(\",\") },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+. Errors if ids is not provided.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#lock post_votes#lock}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#lock Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#lock\")\n async lock(ids: Array<number>): Promise<null> {\n return postVotes_lock({\n client: this.client,\n query: { ids: ids.join(\",\") },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#index post_votes#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#index\")\n async search(options?: SearchPostVotesOptions): Promise<Array<PostVote>> {\n return postVotes_index({\n client: this.client,\n query: options,\n }).then(res => this._handleResponse(res, 200, true, PostVote));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Votes-post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"post_votes#destroy\")\n async unvote(id: number): Promise<null> {\n return postVotes_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ForumPostVote as ForumPostVoteData } from \"../generated/types.js\";\n\ninterface ForumPostVote extends ForumPostVoteData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ForumPostVote ForumPostVote}\n *\n * @see {@link https://e621.wiki/#model-ForumPostVote Documentation} for more details.\n */\n@Schema(\"ForumPostVote\")\nclass ForumPostVote extends Base<ForumPostVoteData> {\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy forum_post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#destroy\")\n async delete(): Promise<null> {\n return this.e621.forumPostVotes.delete(this.id);\n }\n}\n\nexport default ForumPostVote;\n", "import { forumPostVotes_create, forumPostVotes_destroy, forumPostVotes_show } from \"../generated/sdk.js\";\nimport ForumPostVote from \"../models/ForumPostVote.js\";\nimport { GetResponse, OperationID, type ExtractValue } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ForumPostVotesCreateData, ForumPostVotesCreateResponses } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport type ForumPostVoteScore = ExtractValue<\"score\", ForumPostVotesCreateData>;\n/** @category Modules/Types */\nexport interface ForumPostVotesCreateResponse extends GetResponse<ForumPostVotesCreateResponses, 200> {}\n\n/** @category Modules */\nexport default class ForumPostVotes extends Base {\n static readonly moduleKey = \"forumPostVotes\" as const;\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#create forum_post_votes#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#create\")\n async create(id: number, score: ForumPostVoteScore): Promise<ForumPostVotesCreateResponse> {\n return forumPostVotes_create({\n client: this.client,\n path: { id },\n body: { score },\n }).then(res => this._handleResponse(res, 200, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy forum_post_votes#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#destroy\")\n async delete(id: number): Promise<null> {\n return forumPostVotes_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#show forum_post_votes#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Forum_Post_Votes-forum_post_votes\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"forum_post_votes#show\")\n async list(id: number): Promise<Array<ForumPostVote>> {\n return forumPostVotes_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, ForumPostVote));\n }\n}\n", "import { staffAutomodDmails_show, staffAutomodDmails_index, staffAutomodDmails_markAsRead, staffAutomodDmails_markAsUnread } from \"../generated/sdk.js\";\nimport DMail from \"../models/DMail.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffAutomodDmailsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchStaffAutomodDMailsOptions extends TransformDataQueryToOptions<StaffAutomodDmailsIndexData> {}\n\n/** @category Modules */\nexport default class StaffAutomodDMails extends Base {\n static readonly moduleKey = \"staffAutomodDMails\" as const;\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#show staff/automod_dmails#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/automod_dmails#show\")\n async get(id: number): Promise<DMail | null> {\n return staffAutomodDmails_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, false, DMail));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#mark_as_read staff/automod_dmails#mark_as_read}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#mark_as_read Documentation} for more details.\n\t */\n\t@OperationID(\"staff/automod_dmails#mark_as_read\")\n async markRead(id: number): Promise<null> {\n return staffAutomodDmails_markAsRead({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#mark_as_unread staff/automod_dmails#mark_as_unread}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#mark_as_unread Documentation} for more details.\n\t */\n\t@OperationID(\"staff/automod_dmails#mark_as_unread\")\n async markUnread(id: number): Promise<null> {\n return staffAutomodDmails_markAsUnread({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#index staff/automod_dmails#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/automod_dmails\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/automod_dmails#index\")\n async search(options?: SearchStaffAutomodDMailsOptions): Promise<Array<DMail>> {\n return staffAutomodDmails_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, DMail));\n }\n}\n", "import { staffDmails_show, staffDmails_index } from \"../generated/sdk.js\";\nimport DMail from \"../models/DMail.js\";\nimport { OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules */\nexport default class StaffDMails extends Base {\n static readonly moduleKey = \"staffDmails\" as const;\n /**\n\t *\n\t * Must have the bd auditor user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/dmails\\#show staff/dmails#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/dmails\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/dmails#show\")\n async get(user_id: number, id: number): Promise<DMail | null> {\n return staffDmails_show({\n client: this.client,\n path: { id, user_id },\n }).then(res => this._handleResponse(res, 200, false, DMail));\n }\n\n /**\n\t *\n\t * Must have the bd auditor user flag.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-DMails-staff/dmails\\#index staff/dmails#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-DMails-staff/dmails\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/dmails#index\")\n async search(user_id: number): Promise<Array<DMail>> {\n return staffDmails_index({\n client: this.client,\n path: { user_id },\n }).then(res => this._handleResponse(res, 200, true, DMail));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ExceptionLog as ExceptionLogData } from \"../generated/types.js\";\n\ninterface ExceptionLog extends ExceptionLogData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ExceptionLog ExceptionLog}\n *\n * @see {@link https://e621.wiki/#model-ExceptionLog Documentation} for more details.\n */\n@Schema(\"ExceptionLog\")\nclass ExceptionLog extends Base<ExceptionLogData> {}\n\nexport default ExceptionLog;\n", "import { staffExceptions_show, staffExceptions_index } from \"../generated/sdk.js\";\nimport ExceptionLog from \"../models/ExceptionLog.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffExceptionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchStaffExceptionLogsOptions extends TransformDataQueryToOptions<StaffExceptionsIndexData> {}\n\n/** @category Modules */\nexport default class StaffExceptionLogs extends Base {\n static readonly moduleKey = \"staffExceptionLogs\" as const;\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Exception_Logs-staff/exceptions\\#show staff/exceptions#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Exception_Logs-staff/exceptions\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/exceptions#show\")\n async get(id: number): Promise<ExceptionLog> {\n return staffExceptions_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, ExceptionLog));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Exception_Logs-staff/exceptions\\#index staff/exceptions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Exception_Logs-staff/exceptions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/exceptions#index\")\n async search(options?: SearchStaffExceptionLogsOptions): Promise<Array<ExceptionLog>> {\n return staffExceptions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, ExceptionLog));\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffFile as StaffFileData } from \"../generated/types.js\";\nimport type { UpdateStaffFileOptions } from \"../modules/StaffFiles.js\";\n\ninterface StaffFile extends StaffFileData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-StaffFile StaffFile}\n *\n * @see {@link https://e621.wiki/#model-StaffFile Documentation} for more details.\n */\n@Schema(\"StaffFile\")\nclass StaffFile extends Base<StaffFileData> {\n /**\n\t *\n\t * You must be Admin+ if you did not created the file, else Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#destroy staff/files#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#destroy\")\n async delete(): Promise<null> {\n return this.e621.staffFiles.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+ if you did not create the file, else Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#update staff/files#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#update\")\n async update(options: UpdateStaffFileOptions): Promise<null> {\n return this.e621.staffFiles.update(this.id, options);\n }\n}\n\nexport default StaffFile;\n", "import { staffFiles_create, staffFiles_destroy, staffFiles_update, staffFiles_show, staffFiles_index } from \"../generated/sdk.js\";\nimport StaffFile from \"../models/StaffFile.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffFilesCreateData, StaffFilesUpdateData, StaffFilesIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchStaffFilesOptions extends TransformDataQueryToOptions<StaffFilesIndexData> {}\n/** @category Modules/Types */\nexport interface CreateStaffFileOptions extends TransformDataBodyToOptions<StaffFilesCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateStaffFileOptions extends TransformDataBodyToOptions<StaffFilesUpdateData> {}\n\n/** @category Modules */\nexport default class StaffFiles extends Base {\n static readonly moduleKey = \"staffFiles\" as const;\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#create staff/files#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#create\")\n async create(options: CreateStaffFileOptions): Promise<StaffFile> {\n return staffFiles_create({\n client: this.client,\n body: prefixKeys(options, \"staff_file\"),\n }).then(res => this._handleResponse(res, 201, true, StaffFile));\n }\n\n /**\n\t *\n\t * You must be Admin+ if you did not created the file, else Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#destroy staff/files#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#destroy\")\n async delete(id: number): Promise<null> {\n return staffFiles_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#show staff/files#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#show\")\n async get(id: number): Promise<StaffFile> {\n return staffFiles_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, StaffFile));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#index staff/files#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#index\")\n async search(options?: SearchStaffFilesOptions): Promise<Array<StaffFile>> {\n return staffFiles_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, StaffFile));\n }\n\n /**\n\t *\n\t * You must be Admin+ if you did not create the file, else Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#update staff/files#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Files-staff/files\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/files#update\")\n async update(id: number, options: UpdateStaffFileOptions): Promise<null> {\n return staffFiles_update({\n client: this.client,\n path: { id },\n body: prefixKeys(options, \"staff_file\"),\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { staffUserCleanups_clearAvatar, staffUserCleanups_clearProfile, staffUserCleanups_hideBlips, staffUserCleanups_hideComments, staffUserCleanups_hideForumPosts } from \"../generated/sdk.js\";\nimport { OperationID } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules */\nexport default class StaffUserCleanups extends Base {\n static readonly moduleKey = \"staffUserCleanups\" as const;\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#clear_avatar staff/user_cleanups#clear_avatar}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#clear_avatar Documentation} for more details.\n\t */\n\t@OperationID(\"staff/user_cleanups#clear_avatar\")\n async clearAvatar(id: number): Promise<string> {\n return staffUserCleanups_clearAvatar({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#clear_profile staff/user_cleanups#clear_profile}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#clear_profile Documentation} for more details.\n\t */\n\t@OperationID(\"staff/user_cleanups#clear_profile\")\n async clearProfile(id: number): Promise<string> {\n return staffUserCleanups_clearProfile({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_blips staff/user_cleanups#hide_blips}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_blips Documentation} for more details.\n\t */\n\t@OperationID(\"staff/user_cleanups#hide_blips\")\n async hideBlips(id: number): Promise<string> {\n return staffUserCleanups_hideBlips({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_comments staff/user_cleanups#hide_comments}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_comments Documentation} for more details.\n\t */\n\t@OperationID(\"staff/user_cleanups#hide_comments\")\n async hideComments(id: number): Promise<string> {\n return staffUserCleanups_hideComments({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Moderator+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_forum_posts staff/user_cleanups#hide_forum_posts}\n\t *\n\t * @see {@link https://e621.wiki/#operations-User_Cleanups-staff/user_cleanups\\#hide_forum_posts Documentation} for more details.\n\t */\n\t@OperationID(\"staff/user_cleanups#hide_forum_posts\")\n async hideForumPosts(id: number): Promise<string> {\n return staffUserCleanups_hideForumPosts({\n client: this.client,\n path: { id },\n redirect: \"manual\",\n }).then(res => this._handleResponse(res, 302, true));\n }\n}\n", "import { staffUsers_anonymizeConfirm, staffUsers_update, staffUsers_altList } from \"../generated/sdk.js\";\nimport { type StaffUsersUpdateData } from \"../generated/types.js\";\nimport { OperationID, type TransformDataBodyToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\n/** @category Modules/Types */\nexport interface UpdateStaffUserOptions extends TransformDataBodyToOptions<StaffUsersUpdateData> {}\n\n/** @category Modules */\nexport default class StaffUsers extends Base {\n static readonly moduleKey = \"staffUsers\" as const;\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#alt_list staff/users#alt_list}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#alt_list Documentation} for more details.\n\t */\n\t@OperationID(\"staff/users#alt_list\")\n async altList(): Promise<Array<[number, Array<number>]>> {\n return staffUsers_altList({\n client: this.client,\n }).then(res => this._handleResponse(res, 200, true)) as never;\n }\n\n /**\n\t *\n\t * You must have the bd staff user flag. Cannot be used on staff.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#anonymize_confirm staff/users#anonymize_confirm}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#anonymize_confirm Documentation} for more details.\n\t */\n\t@OperationID(\"staff/users#anonymize_confirm\")\n async anonymize(id: number): Promise<string> {\n return staffUsers_anonymizeConfirm({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 302, true));\n }\n\n /**\n\t *\n\t * You must be Admin+. If editing an Admin+, you must be Owner+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#update staff/users#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Admin_Users-staff/users\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/users#update\")\n async update(id: number, options: UpdateStaffUserOptions): Promise<null> {\n return staffUsers_update({\n client: this.client,\n path: { id },\n body: options,\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { staffVoteTrends_index } from \"../generated/sdk.js\";\nimport { OperationID, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffVoteTrendsIndexData, VoteTrend } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface GetStaffVoteTrendsOptions extends TransformDataQueryToOptions<StaffVoteTrendsIndexData> {}\n/** @category Modules/Types */\nexport interface StaffVoteTrendResult {\n scores: Array<number>;\n trend: VoteTrend;\n}\n\n/** @category Modules */\nexport default class StaffVoteTrends extends Base {\n static readonly moduleKey = \"staffVoteTrends\" as const;\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Vote_Trends-staff/vote_trends\\#index staff/vote_trends#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Vote_Trends-staff/vote_trends\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/vote_trends#index\")\n async get(options: GetStaffVoteTrendsOptions): Promise<Array<StaffVoteTrendResult>> {\n return staffVoteTrends_index({\n client: this.client,\n query: options,\n }).then((res) => {\n const data = this._handleResponse(res, 200, true);\n const results: Array<StaffVoteTrendResult> = [];\n // NOTE: the spec describes this as a \"2D array\" of [VoteTrend, scores] pairs, flattened by the generator into an alternating array.\n for (let i = 0; i < data.length; i += 2) {\n results.push({ trend: data[i] as VoteTrend, scores: data[i + 1] as Array<number> });\n }\n return results;\n });\n }\n}\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffWiki as StaffWikiData } from \"../generated/types.js\";\nimport type { UpdateStaffWikiOptions } from \"../modules/StaffWikis.js\";\n\ninterface StaffWiki extends StaffWikiData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-StaffWiki StaffWiki}\n *\n * @see {@link https://e621.wiki/#model-StaffWiki Documentation} for more details.\n */\n@Schema(\"StaffWiki\")\nclass StaffWiki extends Base<StaffWikiData> {\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#claim staff/wikis#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#claim\")\n async claim(): Promise<StaffWiki> {\n return this.e621.staffWikis.claim(this.id);\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#destroy staff/wikis#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#destroy\")\n async delete(): Promise<null> {\n return this.e621.staffWikis.delete(this.id);\n }\n\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#unclaim staff/wikis#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#unclaim\")\n async unclaim(): Promise<StaffWiki> {\n return this.e621.staffWikis.unclaim(this.id);\n }\n\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#update staff/wikis#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#update\")\n async update(options: UpdateStaffWikiOptions): Promise<null> {\n return this.e621.staffWikis.update(this.id, options);\n }\n}\n\nexport default StaffWiki;\n", "import { staffWikis_claim, staffWikis_create, staffWikis_destroy, staffWikis_update, staffWikis_show, staffWikis_index, staffWikis_unclaim } from \"../generated/sdk.js\";\nimport StaffWiki from \"../models/StaffWiki.js\";\nimport { OperationID, prefixKeys, type TransformDataBodyToOptions, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffWikisCreateData, StaffWikisUpdateData, StaffWikisIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchStaffWikisOptions extends TransformDataQueryToOptions<StaffWikisIndexData> {}\n/** @category Modules/Types */\nexport interface CreateStaffWikiOptions extends TransformDataBodyToOptions<StaffWikisCreateData> {}\n/** @category Modules/Types */\nexport interface UpdateStaffWikiOptions extends TransformDataBodyToOptions<StaffWikisUpdateData> {}\n\n/** @category Modules */\nexport default class StaffWikis extends Base {\n static readonly moduleKey = \"staffWikis\" as const;\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#claim staff/wikis#claim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#claim Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#claim\")\n async claim(id: number): Promise<StaffWiki> {\n return staffWikis_claim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, StaffWiki));\n }\n\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#create staff/wikis#create}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#create Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#create\")\n async create(options: CreateStaffWikiOptions): Promise<StaffWiki> {\n return staffWikis_create({\n client: this.client,\n body: prefixKeys(options, \"staff_wiki\"),\n }).then(res => this._handleResponse(res, 201, true, StaffWiki));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#destroy staff/wikis#destroy}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#destroy Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#destroy\")\n async delete(id: number): Promise<null> {\n return staffWikis_destroy({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 204, true));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#show staff/wikis#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#show\")\n async get(id: number): Promise<StaffWiki> {\n return staffWikis_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, StaffWiki));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#index staff/wikis#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#index\")\n async search(options?: SearchStaffWikisOptions): Promise<Array<StaffWiki>> {\n return staffWikis_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, StaffWiki));\n }\n\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#unclaim staff/wikis#unclaim}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#unclaim Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#unclaim\")\n async unclaim(id: number): Promise<StaffWiki> {\n return staffWikis_unclaim({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 201, true, StaffWiki));\n }\n\n /**\n\t *\n\t * You must be Staff+\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#update staff/wikis#update}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wikis-staff/wikis\\#update Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wikis#update\")\n async update(id: number, options: UpdateStaffWikiOptions): Promise<null> {\n return staffWikis_update({\n client: this.client,\n path: { id },\n body: prefixKeys(options, \"staff_wiki\"),\n }).then(res => this._handleResponse(res, 204, true));\n }\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffWikiVersion as StaffWikiVersionData } from \"../generated/types.js\";\n\ninterface StaffWikiVersion extends StaffWikiVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-StaffWikiVersion StaffWikiVersion}\n *\n * @see {@link https://e621.wiki/#model-StaffWikiVersion Documentation} for more details.\n */\n@Schema(\"StaffWikiVersion\")\nclass StaffWikiVersion extends Base<StaffWikiVersionData> {}\n\nexport default StaffWikiVersion;\n", "import { staffWikiVersions_show, staffWikiVersions_index } from \"../generated/sdk.js\";\nimport StaffWikiVersion from \"../models/StaffWikiVersion.js\";\nimport { OperationID, prefixKeys, type TransformDataQueryToOptions } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { StaffWikiVersionsIndexData } from \"../generated/types.js\";\n\n/** @category Modules/Types */\nexport interface SearchStaffWikiVersionsOptions extends TransformDataQueryToOptions<StaffWikiVersionsIndexData> {}\n\n/** @category Modules */\nexport default class StaffWikiVersions extends Base {\n static readonly moduleKey = \"staffWikiVersions\" as const;\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wiki_Versions-staff/wiki_versions\\#show staff/wiki_versions#show}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wiki_Versions-staff/wiki_versions\\#show Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wiki_versions#show\")\n async get(id: number): Promise<StaffWikiVersion> {\n return staffWikiVersions_show({\n client: this.client,\n path: { id },\n }).then(res => this._handleResponse(res, 200, true, StaffWikiVersion));\n }\n\n /**\n\t *\n\t * You must be Staff+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Staff_Wiki_Versions-staff/wiki_versions\\#index staff/wiki_versions#index}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Staff_Wiki_Versions-staff/wiki_versions\\#index Documentation} for more details.\n\t */\n\t@OperationID(\"staff/wiki_versions#index\")\n async search(options?: SearchStaffWikiVersionsOptions): Promise<Array<StaffWikiVersion>> {\n return staffWikiVersions_index({\n client: this.client,\n query: prefixKeys(options, \"search\", [\"limit\", \"page\"]),\n }).then(res => this._handleResponse(res, 200, true, StaffWikiVersion));\n }\n}\n", "/* eslint-disable import/order */\nimport Appeals from \"./Appeals.js\";\nexport type * from \"./Appeals.js\";\nimport Artists from \"./Artists.js\";\nexport type * from \"./Artists.js\";\nimport ArtistUrls from \"./ArtistUrls.js\";\nexport type * from \"./ArtistUrls.js\";\nimport ArtistVersions from \"./ArtistVersions.js\";\nexport type * from \"./ArtistVersions.js\";\nimport AvoidPostings from \"./AvoidPostings.js\";\nexport type * from \"./AvoidPostings.js\";\nimport AvoidPostingVersions from \"./AvoidPostingVersions.js\";\nexport type * from \"./AvoidPostingVersions.js\";\nimport Bans from \"./Bans.js\";\nexport type * from \"./Bans.js\";\nimport Blips from \"./Blips.js\";\nexport type * from \"./Blips.js\";\nimport BulkUpdateRequests from \"./BulkUpdateRequests.js\";\nexport type * from \"./BulkUpdateRequests.js\";\nimport Comments from \"./Comments.js\";\nexport type * from \"./Comments.js\";\nimport DBExports from \"./DbExports.js\";\nexport type * from \"./DbExports.js\";\nimport DMails from \"./DMails.js\";\nexport type * from \"./DMails.js\";\nimport EditHistories from \"./EditHistories.js\";\nexport type * from \"./EditHistories.js\";\nimport EmailBlacklists from \"./EmailBlacklists.js\";\nexport type * from \"./EmailBlacklists.js\";\nimport Favorites from \"./Favorites.js\";\nexport type * from \"./Favorites.js\";\nimport ForumPosts from \"./ForumPosts.js\";\nexport type * from \"./ForumPosts.js\";\nimport ForumTopics from \"./ForumTopics.js\";\nexport type * from \"./ForumTopics.js\";\nimport Health from \"./Health.js\";\nexport type * from \"./Health.js\";\nimport HelpPages from \"./HelpPages.js\";\nexport type * from \"./HelpPages.js\";\nimport IpBans from \"./IpBans.js\";\nexport type * from \"./IpBans.js\";\nimport IqdbQueries from \"./IqdbQueries.js\";\nexport type * from \"./IqdbQueries.js\";\nimport Mascots from \"./Mascots.js\";\nexport type * from \"./Mascots.js\";\nimport ModActions from \"./ModActions.js\";\nexport type * from \"./ModActions.js\";\nimport NewsUpdates from \"./NewsUpdates.js\";\nexport type * from \"./NewsUpdates.js\";\nimport Notes from \"./Notes.js\";\nexport type * from \"./Notes.js\";\nimport NoteVersions from \"./NoteVersions.js\";\nexport type * from \"./NoteVersions.js\";\nimport Pools from \"./Pools.js\";\nexport type * from \"./Pools.js\";\nimport PoolVersions from \"./PoolVersions.js\";\nexport type * from \"./PoolVersions.js\";\nimport Posts from \"./Posts.js\";\nexport type * from \"./Posts.js\";\nimport PostSets from \"./PostSets.js\";\nexport type * from \"./PostSets.js\";\nimport PostVersions from \"./PostVersions.js\";\nexport type * from \"./PostVersions.js\";\nimport SearchTrendBlacklists from \"./SearchTrendBlacklists.js\";\nexport type * from \"./SearchTrendBlacklists.js\";\nimport SearchTrends from \"./SearchTrends.js\";\nexport type * from \"./SearchTrends.js\";\nimport StaffNotes from \"./StaffNotes.js\";\nexport type * from \"./StaffNotes.js\";\nimport Tags from \"./Tags.js\";\nexport type * from \"./Tags.js\";\nimport Takedowns from \"./Takedowns.js\";\nexport type * from \"./Takedowns.js\";\nimport Tickets from \"./Tickets.js\";\nexport type * from \"./Tickets.js\";\nimport Uploads from \"./Uploads.js\";\nexport type * from \"./Uploads.js\";\nimport UploadWhitelists from \"./UploadWhitelists.js\";\nexport type * from \"./UploadWhitelists.js\";\nimport Users from \"./Users.js\";\nexport type * from \"./Users.js\";\nimport UserFeedbacks from \"./UserFeedbacks.js\";\nexport type * from \"./UserFeedbacks.js\";\nimport UserNameChangeRequests from \"./UserNameChangeRequests.js\";\nexport type * from \"./UserNameChangeRequests.js\";\nimport WikiPages from \"./WikiPages.js\";\nexport type * from \"./WikiPages.js\";\nimport WikiPageVersions from \"./WikiPageVersions.js\";\nexport type * from \"./WikiPageVersions.js\";\nimport CommentVotes from \"./CommentVotes.js\";\nexport type * from \"./CommentVotes.js\";\nimport DText from \"./DText.js\";\nexport type * from \"./DText.js\";\nimport Popular from \"./Popular.js\";\nexport type * from \"./Popular.js\";\nimport PostApprovals from \"./PostApprovals.js\";\nexport type * from \"./PostApprovals.js\";\nimport PostDisapprovals from \"./PostDisapprovals.js\";\nexport type * from \"./PostDisapprovals.js\";\nimport PostEvents from \"./PostEvents.js\";\nexport type * from \"./PostEvents.js\";\nimport PostFlags from \"./PostFlags.js\";\nexport type * from \"./PostFlags.js\";\nimport PostReplacements from \"./PostReplacements.js\";\nexport type * from \"./PostReplacements.js\";\nimport RelatedTags from \"./RelatedTags.js\";\nexport type * from \"./RelatedTags.js\";\nimport TagAliases from \"./TagAliases.js\";\nexport type * from \"./TagAliases.js\";\nimport TagCorrections from \"./TagCorrections.js\";\nexport type * from \"./TagCorrections.js\";\nimport TagImplications from \"./TagImplications.js\";\nexport type * from \"./TagImplications.js\";\nimport TagTypeVersions from \"./TagTypeVersions.js\";\nexport type * from \"./TagTypeVersions.js\";\nimport PostVotes from \"./PostVotes.js\";\nexport type * from \"./PostVotes.js\";\nimport ForumPostVotes from \"./ForumPostVotes.js\";\nexport type * from \"./ForumPostVotes.js\";\nimport StaffAutomodDMails from \"./StaffAutomodDMails.js\";\nexport type * from \"./StaffAutomodDMails.js\";\nimport StaffDMails from \"./StaffDMails.js\";\nexport type * from \"./StaffDMails.js\";\nimport StaffExceptionLogs from \"./StaffExceptionLogs.js\";\nexport type * from \"./StaffExceptionLogs.js\";\nimport StaffFiles from \"./StaffFiles.js\";\nexport type * from \"./StaffFiles.js\";\nimport StaffUserCleanups from \"./StaffUserCleanups.js\";\nexport type * from \"./StaffUserCleanups.js\";\nimport StaffUsers from \"./StaffUsers.js\";\nexport type * from \"./StaffUsers.js\";\nimport StaffVoteTrends from \"./StaffVoteTrends.js\";\nexport type * from \"./StaffVoteTrends.js\";\nimport StaffWikis from \"./StaffWikis.js\";\nexport type * from \"./StaffWikis.js\";\nimport StaffWikiVersions from \"./StaffWikiVersions.js\";\nexport type * from \"./StaffWikiVersions.js\";\nimport type { Client } from \"../generated/client/types.js\";\nimport type E621 from \"../index.js\";\nimport type { NoV2Options, PostFormatOptions } from \"./posts/Format.js\";\n\n/** @category Main */\nexport interface Modules<PF extends PostFormatOptions = NoV2Options> {\n appeals: Appeals;\n artists: Artists;\n artistUrls: ArtistUrls;\n artistVersions: ArtistVersions;\n avoidPostings: AvoidPostings;\n avoidPostingVersions: AvoidPostingVersions;\n bans: Bans;\n blips: Blips;\n bulkUpdateRequests: BulkUpdateRequests;\n comments: Comments;\n commentVotes: CommentVotes;\n dbExports: DBExports;\n dmails: DMails;\n dtext: DText;\n editHistories: EditHistories;\n emailBlacklists: EmailBlacklists;\n favorites: Favorites<PF>;\n forumPosts: ForumPosts;\n forumPostVotes: ForumPostVotes;\n forumTopics: ForumTopics;\n health: Health;\n helpPages: HelpPages;\n ipBans: IpBans;\n iqdb: IqdbQueries<PF>;\n mascots: Mascots;\n modActions: ModActions;\n newsUpdates: NewsUpdates;\n notes: Notes;\n noteVersions: NoteVersions;\n pools: Pools;\n poolVersions: PoolVersions;\n popular: Popular<PF>;\n postApprovals: PostApprovals;\n postDisapprovals: PostDisapprovals;\n postEvents: PostEvents;\n postFlags: PostFlags;\n postReplacements: PostReplacements;\n posts: Posts<PF>;\n postSets: PostSets;\n postVersions: PostVersions;\n postVotes: PostVotes;\n relatedTags: RelatedTags;\n searchTrendBlacklists: SearchTrendBlacklists;\n searchTrends: SearchTrends;\n staffAutomodDMails: StaffAutomodDMails;\n staffDmails: StaffDMails;\n staffExceptionLogs: StaffExceptionLogs;\n staffFiles: StaffFiles;\n staffNotes: StaffNotes;\n staffUserCleanups: StaffUserCleanups;\n staffUsers: StaffUsers;\n staffVoteTrends: StaffVoteTrends;\n staffWikis: StaffWikis;\n staffWikiVersions: StaffWikiVersions;\n tagAliases: TagAliases;\n tagCorrections: TagCorrections;\n tagImplications: TagImplications;\n tags: Tags;\n tagTypeVersions: TagTypeVersions;\n takedowns: Takedowns;\n tickets: Tickets;\n uploads: Uploads<PF>;\n uploadWhitelists: UploadWhitelists;\n userFeedbacks: UserFeedbacks;\n userNameChangeRequests: UserNameChangeRequests;\n users: Users;\n wikiPages: WikiPages;\n wikiPageVersions: WikiPageVersions;\n}\n\nexport function apply<PF extends PostFormatOptions = NoV2Options>(e621: E621<PF>, client: Client, defaultPostFormat: PF = {} as PF): void {\n // Every module below except the post-format-aware ones (favorites/iqdb/popular/posts/uploads) is\n // generic over PF only via Base's default type param - cast down to the bare E621 type to satisfy them.\n const baseE621 = e621 as unknown as E621;\n const modules: Modules<PF> = {\n appeals: new Appeals(baseE621, client),\n artistUrls: new ArtistUrls(baseE621, client),\n artistVersions: new ArtistVersions(baseE621, client),\n artists: new Artists(baseE621, client),\n avoidPostingVersions: new AvoidPostingVersions(baseE621, client),\n avoidPostings: new AvoidPostings(baseE621, client),\n bans: new Bans(baseE621, client),\n blips: new Blips(baseE621, client),\n bulkUpdateRequests: new BulkUpdateRequests(baseE621, client),\n commentVotes: new CommentVotes(baseE621, client),\n comments: new Comments(baseE621, client),\n dbExports: new DBExports(baseE621, client),\n dmails: new DMails(baseE621, client),\n dtext: new DText(baseE621, client),\n editHistories: new EditHistories(baseE621, client),\n emailBlacklists: new EmailBlacklists(baseE621, client),\n favorites: new Favorites(e621, client, defaultPostFormat),\n forumPosts: new ForumPosts(baseE621, client),\n forumPostVotes: new ForumPostVotes(baseE621, client),\n forumTopics: new ForumTopics(baseE621, client),\n health: new Health(baseE621, client),\n helpPages: new HelpPages(baseE621, client),\n ipBans: new IpBans(baseE621, client),\n iqdb: new IqdbQueries(e621, client, defaultPostFormat),\n mascots: new Mascots(baseE621, client),\n modActions: new ModActions(baseE621, client),\n newsUpdates: new NewsUpdates(baseE621, client),\n notes: new Notes(baseE621, client),\n noteVersions: new NoteVersions(baseE621, client),\n pools: new Pools(baseE621, client),\n popular: new Popular(e621, client, defaultPostFormat),\n postApprovals: new PostApprovals(baseE621, client),\n postDisapprovals: new PostDisapprovals(baseE621, client),\n postEvents: new PostEvents(baseE621, client),\n postFlags: new PostFlags(baseE621, client),\n postReplacements: new PostReplacements(baseE621, client),\n poolVersions: new PoolVersions(baseE621, client),\n postSets: new PostSets(baseE621, client),\n postVersions: new PostVersions(baseE621, client),\n postVotes: new PostVotes(baseE621, client),\n posts: new Posts(e621, client, defaultPostFormat),\n relatedTags: new RelatedTags(baseE621, client),\n searchTrendBlacklists: new SearchTrendBlacklists(baseE621, client),\n searchTrends: new SearchTrends(baseE621, client),\n staffAutomodDMails: new StaffAutomodDMails(baseE621, client),\n staffDmails: new StaffDMails(baseE621, client),\n staffExceptionLogs: new StaffExceptionLogs(baseE621, client),\n staffFiles: new StaffFiles(baseE621, client),\n staffNotes: new StaffNotes(baseE621, client),\n staffUserCleanups: new StaffUserCleanups(baseE621, client),\n staffUsers: new StaffUsers(baseE621, client),\n staffVoteTrends: new StaffVoteTrends(baseE621, client),\n staffWikis: new StaffWikis(baseE621, client),\n staffWikiVersions: new StaffWikiVersions(baseE621, client),\n tagAliases: new TagAliases(baseE621, client),\n tagCorrections: new TagCorrections(baseE621, client),\n tagImplications: new TagImplications(baseE621, client),\n tagTypeVersions: new TagTypeVersions(baseE621, client),\n tags: new Tags(baseE621, client),\n takedowns: new Takedowns(baseE621, client),\n tickets: new Tickets(baseE621, client),\n uploads: new Uploads(e621, client),\n uploadWhitelists: new UploadWhitelists(baseE621, client),\n users: new Users(baseE621, client),\n userFeedbacks: new UserFeedbacks(baseE621, client),\n userNameChangeRequests: new UserNameChangeRequests(baseE621, client),\n wikiPages: new WikiPages(baseE621, client),\n wikiPageVersions: new WikiPageVersions(baseE621, client),\n };\n\n Object.assign(e621, modules);\n}\n", "import { Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { ApiKey as ApiKeyData } from \"../generated/types.js\";\n\ninterface ApiKey extends ApiKeyData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-ApiKey ApiKey}\n *\n * @see {@link https://e621.wiki/#model-ApiKey Documentation} for more details.\n */\n@Schema(\"ApiKey\")\nclass ApiKey extends Base<ApiKeyData> {}\n\nexport default ApiKey;\n", "import { OperationID, Schema } from \"../util.js\";\n\nimport Base from \"./Base.js\";\n\nimport type { PostVersion as PostVersionData } from \"../generated/types.js\";\n\ninterface PostVersion extends PostVersionData {}\n/**\n * @category Models\n *\n * @schema {@link https://e621.wiki/#model-PostVersion PostVersion}\n *\n * @see {@link https://e621.wiki/#model-PostVersion Documentation} for more details.\n */\n@Schema(\"PostVersion\")\nclass PostVersion extends Base<PostVersionData> {\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#hide post_versions#hide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#hide Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#hide\")\n async hide(): Promise<string> {\n return this.e621.postVersions.hide(this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Posts-posts\\#revert posts#revert}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Posts-posts\\#revert Documentation} for more details.\n\t */\n\t@OperationID(\"posts#revert\")\n async revertTo(): Promise<null> {\n return this.e621.posts.revert(this.post_id, this.id);\n }\n\n /**\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#undo post_versions#undo}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#undo Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#undo\")\n async undo(): Promise<null> {\n return this.e621.postVersions.undo(this.id);\n }\n\n /**\n\t *\n\t * You must be Admin+.\n\t *\n\t * @requiresApiKeyAuth\n\t *\n\t * @operationId {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#unhide post_versions#unhide}\n\t *\n\t * @see {@link https://e621.wiki/#operations-Post_Versions-post_versions\\#unhide Documentation} for more details.\n\t */\n\t@OperationID(\"post_versions#unhide\")\n async unhide(): Promise<string> {\n return this.e621.postVersions.unhide(this.id);\n }\n}\n\nexport default PostVersion;\n", "export * as Types from \"./generated/types.js\";\nexport * as Schemas from \"./generated/schemas.js\";\nexport * as SDK from \"./generated/sdk.js\";\nexport * as Client from \"./generated/client/index.js\";\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nexport type ClientOptions = {\n baseUrl: 'https://e621.net' | 'https://e926.net' | 'http://localhost:3000' | (string & {});\n};\n\nexport type AccessDeniedResponse = {\n success: boolean;\n reason: 'Access Denied';\n};\n\nexport type NotFoundResponse = {\n success: boolean;\n reason: 'not found';\n};\n\nexport type WarningRecordType = {\n record_type: 'unmark' | 'ban' | 'record' | 'warning';\n};\n\nexport type ModActionActions = 'admin_user_delete' | 'artist_page_rename' | 'artist_page_lock' | 'artist_page_unlock' | 'artist_user_linked' | 'artist_user_unlinked' | 'avoid_posting_create' | 'avoid_posting_update' | 'avoid_posting_delete' | 'avoid_posting_undelete' | 'avoid_posting_destroy' | 'staff_note_create' | 'staff_note_update' | 'staff_note_delete' | 'staff_note_undelete' | 'blip_destroy' | 'blip_delete' | 'blip_undelete' | 'blip_update' | 'comment_delete' | 'comment_hide' | 'comment_unhide' | 'comment_update' | 'forum_category_create' | 'forum_category_delete' | 'forum_category_update' | 'forum_post_delete' | 'forum_post_hide' | 'forum_post_unhide' | 'forum_post_update' | 'forum_topic_delete' | 'forum_topic_hide' | 'forum_topic_unhide' | 'forum_topic_lock' | 'forum_topic_unlock' | 'forum_topic_stick' | 'forum_topic_unstick' | 'forum_topic_update' | 'help_create' | 'help_delete' | 'help_update' | 'ip_ban_create' | 'ip_ban_delete' | 'search_trend_blacklist_create' | 'search_trend_blacklist_update' | 'search_trend_blacklist_delete' | 'search_trend_blacklist_purge' | 'mascot_create' | 'mascot_update' | 'mascot_delete' | 'staff_file_create' | 'staff_file_update' | 'staff_file_delete' | 'pool_delete' | 'report_reason_create' | 'report_reason_delete' | 'report_reason_update' | 'set_update' | 'set_delete' | 'set_change_visibility' | 'tag_destroy' | 'tag_alias_create' | 'tag_alias_update' | 'tag_implication_create' | 'tag_implication_update' | 'ticket_claim' | 'ticket_unclaim' | 'ticket_update' | 'appeal_claim' | 'appeal_unclaim' | 'appeal_update' | 'upload_whitelist_create' | 'upload_whitelist_update' | 'upload_whitelist_delete' | 'user_avatar_clear' | 'user_profile_clear' | 'user_comments_hide' | 'user_forum_posts_hide' | 'user_blips_delete' | 'user_blacklist_changed' | 'user_text_change' | 'user_custom_title_change' | 'user_upload_limit_change' | 'user_uploads_toggle' | 'user_flags_change' | 'user_level_change' | 'user_name_change' | 'user_delete' | 'user_ban' | 'user_ban_update' | 'user_unban' | 'user_feedback_create' | 'user_feedback_update' | 'user_feedback_delete' | 'user_feedback_undelete' | 'user_feedback_destroy' | 'user_flush_favorites' | 'wiki_page_rename' | 'wiki_page_delete' | 'wiki_page_lock' | 'wiki_page_unlock' | 'mass_update' | 'nuke_tag' | 'takedown_delete' | 'takedown_process' | 'post_version_hide' | 'post_version_unhide' | 'created_positive_record' | 'created_neutral_record' | 'created_negative_record' | 'created_flag_reason' | 'edited_flag_reason' | 'deleted_flag_reason' | 'post_move_favorites' | 'post_delete' | 'post_undelete' | 'post_destroy' | 'post_rating_lock' | 'post_unapprove' | 'post_replacement_accept' | 'post_replacement_reject' | 'post_replacement_delete';\n\nexport type PostEventActions = 'deleted' | 'undeleted' | 'approved' | 'unapproved' | 'flag_created' | 'flag_removed' | 'favorites_moved' | 'favorites_received' | 'rating_locked' | 'rating_unlocked' | 'status_locked' | 'status_unlocked' | 'note_locked' | 'note_unlocked' | 'comment_locked' | 'comment_unlocked' | 'replacement_accepted' | 'replacement_rejected' | 'replacement_promoted' | 'replacement_deleted' | 'expunged' | 'changed_bg_color' | 'replacement_penalty_changed' | 'owner_changed';\n\nexport type Ratings = 's' | 'q' | 'e';\n\nexport type TagCategories = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\n\nexport type FeedbackCategories = 'negative' | 'neutral' | 'positive';\n\nexport type TagRequestStatuses = 'active' | 'deleted' | 'processing' | 'queued' | 'retired' | 'pending' | `error: ${string}`;\n\nexport type WarningTypes = 'warning' | 'record' | 'ban';\n\nexport type PoolCategories = 'collection' | 'series';\n\nexport type TicketTypes = 'blip' | 'comment' | 'dmail' | 'forum' | 'pool' | 'post' | 'set' | 'user' | 'wiki' | 'replacement';\n\nexport type TicketStatuses = 'pending' | 'partial' | 'approved';\n\nexport type Artist = {\n id: number;\n name: string;\n updated_at: string;\n is_active: boolean;\n other_names: Array<string>;\n group_name: string;\n linked_user_id: number | null;\n created_at: string;\n creator_id: number;\n is_locked: boolean;\n notes: string | null;\n};\n\nexport type ArtistUrl = {\n id: number;\n artist_id: number;\n url: string;\n normalized_url: string;\n created_at: string;\n updated_at: string;\n is_active: boolean;\n};\n\nexport type ArtistVersion = {\n id: number;\n artist_id: number;\n name: string;\n updater_id: number;\n created_at: string;\n updated_at: string;\n is_active: boolean;\n other_names: Array<string>;\n notes_changed: boolean;\n urls: Array<string>;\n};\n\nexport type AvoidPosting = {\n id: number;\n creator_id: number;\n updater_id: number;\n artist_id: number;\n /**\n * Only visible to Staff+\n */\n staff_notes?: string;\n details: string;\n is_active: boolean;\n created_at: string;\n updated_at: string;\n};\n\nexport type AvoidPostingVersion = {\n id: number;\n updater_id: number;\n avoid_posting_id: number;\n details: string;\n /**\n * Only visible to Staff+\n */\n staff_notes?: string;\n is_active: boolean;\n updated_at: string;\n};\n\nexport type Ban = {\n id: number;\n user_id: number;\n reason: string;\n expires_at: string | null;\n banner_id: number;\n created_at: string;\n updated_at: string;\n};\n\nexport type Blip = {\n id: number;\n creator_id: number;\n body: string;\n response_to: number;\n created_at: string;\n updated_at: string;\n is_deleted: boolean;\n warning_type: WarningTypes;\n warning_user_id: number;\n updater_id: number;\n creator_name: string;\n};\n\nexport type BulkRelatedTag = RelatedTag & {\n count: number;\n};\n\nexport type BulkUpdateRequest = {\n id: number;\n creator_id: number;\n forum_topic_id: number | null;\n script: string;\n status: 'approved' | 'rejected' | 'pending';\n created_at: string;\n updated_at: string;\n approver_id: number | null;\n forum_post_id: number | null;\n title: string;\n};\n\nexport type Comment = {\n id: number;\n created_at: string;\n post_id: number;\n creator_id: number;\n body: string;\n score: number;\n updated_at: string;\n updater_id: number;\n /**\n * @deprecated\n */\n do_not_bump_post: boolean;\n is_hidden: boolean;\n is_sticky: boolean;\n warning_type: WarningTypes;\n warning_user_id: number | null;\n creator_name: string;\n updater_name: string;\n vote: -1 | 0 | 1;\n};\n\nexport type CurrentUser = User & {\n blacklist_users: boolean;\n description_collapsed_initially: boolean;\n hide_comments: boolean;\n show_hidden_comments: boolean;\n show_post_statistics: boolean;\n receive_email_notifications: boolean;\n enable_keyboard_navigation: boolean;\n enable_privacy_mode: boolean;\n style_usernames: boolean;\n enable_auto_complete: boolean;\n can_approve_posts?: boolean;\n disable_cropped_thumbnails: boolean;\n enable_safe_mode: boolean;\n disable_responsive_mode: boolean;\n no_flagging: boolean;\n disable_user_dmails: boolean;\n enable_compact_uploader: boolean;\n replacements_beta: boolean;\n updated_at: string;\n email: string;\n last_logged_in_at: string;\n last_forum_read_at: string;\n recent_tags: string;\n comment_threshold: number;\n default_image_size: 'large' | 'fit' | 'fitv' | 'original';\n favorite_tags: string;\n blacklisted_tags: string;\n time_zone: string;\n per_page: number;\n custom_style: string;\n favorite_count: number;\n api_regen_multiplier: number;\n api_burst_limit: number;\n remaining_api_limit: number;\n statement_timeout: number;\n favorite_limit: number;\n tag_query_limit: number;\n has_mail: boolean;\n forum_notification_dot: boolean;\n};\n\nexport type DMail = {\n id: number;\n owner_id: number;\n from_id: number;\n to_id: number;\n title: string;\n body: string;\n is_read: boolean;\n is_deleted: boolean;\n created_at: string;\n updated_at: string;\n to_name: string;\n from_name: string;\n};\n\nexport type DeferredPost = {\n id: number;\n flags: string;\n tags: string;\n rating: Ratings;\n file_ext: string;\n width: number;\n height: number;\n size: number;\n created_at: string;\n uploader: string;\n uploader_id: number;\n score: number;\n fav_count: number;\n is_favorited: boolean;\n pools: Array<number>;\n md5: string;\n preview_url: string | null;\n large_url: string | null;\n file_url: string | null;\n preview_width: number;\n preview_height: number;\n};\n\nexport type DTextResponse = {\n html: string;\n posts: DeferredPost;\n};\n\nexport type EmailBlacklist = {\n id: number;\n created_at: string;\n updated_at: string;\n domain: string;\n creator_id: string;\n reason: string;\n};\n\nexport type ForumPost = {\n id: number;\n topic_id: number;\n creator_id: number;\n updater_id: number;\n body: string;\n is_hidden: boolean;\n created_at: string;\n updated_at: string;\n warning_type: WarningTypes;\n warning_user_id: number | null;\n};\n\nexport type ForumPostVote = {\n id: number;\n forum_post_id: number;\n creator_id: number;\n score: number;\n created_at: string;\n updated_at: string;\n creator_name: string;\n};\n\nexport type ForumTopic = {\n id: number;\n creator_id: number;\n updater_id: number;\n title: string;\n response_count: number;\n is_sticky: boolean;\n is_locked: boolean;\n is_hidden: boolean;\n created_at: string;\n updated_at: string;\n category_id: number;\n};\n\nexport type FullCurrentUser = CurrentUser & FullUser;\n\nexport type FullUser = User & {\n wiki_page_version_count: number;\n artist_version_count: number;\n pool_version_count: number;\n forum_post_count: number;\n comment_count: number;\n flag_count: number;\n favorite_count: number;\n positive_feedback_count: number;\n neutral_feedback_count: number;\n negative_feedback_count: number;\n upload_limit: number;\n profile_about: string;\n profile_artinfo: string;\n};\n\nexport type HelpPage = {\n id: number;\n name: string;\n title: string;\n wiki_page: string;\n related: string;\n created_at: string;\n updated_at: string;\n};\n\n/**\n * Due to a global filter, the ip_addr is not present no matter your user level.\n */\nexport type IpBan = {\n id: number;\n creator_id: number;\n reason: string;\n created_at: string;\n updated_at: string;\n};\n\nexport type IqdbPost = {\n id: number;\n created_at: string;\n updated_at: string;\n up_score: number;\n down_score: number;\n score: number;\n source: string;\n md5: string;\n rating: Ratings;\n is_note_locked: boolean;\n is_rating_locked: boolean;\n is_status_locked: boolean;\n is_pending: boolean;\n is_flagged: boolean;\n is_deleted: boolean;\n uploader_id: number;\n approver_id: number;\n last_noted_at: string | null;\n last_comment_bumped_at: string | null;\n fav_count: number;\n tag_string: string;\n tag_count: number;\n tag_count_general: number;\n tag_count_artist: number;\n tag_count_character: number;\n tag_count_copyright: number;\n file_ext: string;\n file_size: number;\n image_width: number;\n image_height: number;\n parent_id: number | null;\n has_children: boolean;\n last_commented_at: string | null;\n has_active_children: boolean;\n bit_flags: number;\n tag_count_meta: number;\n locked_tags: string | null;\n tag_count_species: number;\n tag_count_invalid: number;\n description: string;\n comment_count: number;\n change_seq: number;\n tag_count_lore: number;\n bg_color: string | null;\n generated_samples: Array<'720p' | '480p' | 'original'> | null;\n duration: string | null;\n is_comment_disabled: boolean;\n is_comment_locked: boolean;\n has_large: boolean;\n has_visible_children: boolean;\n children_ids: string | null;\n pool_ids: Array<number>;\n is_favorited: boolean;\n file_url?: string;\n large_file_url?: string;\n preview_file_url?: string;\n};\n\nexport type RawPost = {\n id: number;\n created_at: string;\n updated_at: string;\n up_score: number;\n down_score: number;\n score: number;\n source: string;\n md5: string;\n rating: Ratings;\n is_note_locked: boolean;\n is_rating_locked: boolean;\n is_status_locked: boolean;\n is_pending: boolean;\n is_flagged: boolean;\n is_deleted: boolean;\n uploader_id: number;\n approver_id: number;\n last_noted_at: string | null;\n last_comment_bumped_at: string | null;\n fav_count: number;\n tag_string: string;\n tag_count: number;\n tag_count_general: number;\n tag_count_artist: number;\n tag_count_character: number;\n tag_count_copyright: number;\n file_ext: string;\n file_size: number;\n image_width: number;\n image_height: number;\n parent_id: number | null;\n has_children: boolean;\n last_commented_at: string | null;\n has_active_children: boolean;\n bit_flags: number;\n tag_count_meta: number;\n locked_tags: string | null;\n tag_count_species: number;\n tag_count_invalid: number;\n description: string;\n comment_count: number;\n change_seq: number;\n tag_count_lore: number;\n bg_color: string | null;\n generated_samples: Array<'720p' | '480p' | 'original'> | null;\n duration: string | null;\n is_comment_disabled: boolean;\n is_comment_locked: boolean;\n has_large: boolean;\n has_visible_children: boolean;\n children_ids: string | null;\n pool_ids: Array<number>;\n is_favorited: boolean;\n file_url?: string;\n large_file_url?: string;\n preview_file_url?: string;\n};\n\nexport type IqdbResponse = {\n hash: string;\n post_id: number;\n score: number;\n post: {\n posts: IqdbPost;\n };\n};\n\nexport type Mascot = {\n id: number;\n creator_id: number;\n display_name: string;\n md5: string;\n file_ext: string;\n background_color: string;\n artist_url: string;\n artist_name: string;\n active: boolean;\n created_at: string;\n updated_at: string;\n available_on: Array<string>;\n url_path: string;\n};\n\nexport type ModAction = {\n id: number;\n creator_id: number;\n created_at: string;\n updated_at: string;\n action: ModActionActions;\n};\n\nexport type NewsUpdate = {\n id: number;\n message: string;\n creator_id: number;\n updater_id: number;\n created_at: string;\n updated_at: string;\n};\n\nexport type Note = {\n id: number;\n created_at: string;\n updated_at: string;\n creator_id: number;\n x: number;\n y: number;\n width: number;\n height: number;\n version: number;\n is_active: boolean;\n post_id: number;\n body: string;\n creator_name: string;\n};\n\nexport type NoteVersion = {\n id: number;\n created_at: string;\n updated_at: string;\n x: number;\n y: number;\n width: number;\n height: number;\n body: string;\n version: number;\n is_active: boolean;\n note_id: number;\n post_id: number;\n updater_id: number;\n};\n\nexport type Pool = {\n id: number;\n name: string;\n updated_at: string;\n creator_id: number;\n description: string;\n is_active: boolean;\n category: PoolCategories;\n post_ids: Array<number>;\n created_at: string;\n creator_name: string;\n post_count: number;\n};\n\nexport type PoolVersion = {\n id: number;\n pool_id: number;\n post_ids: Array<number>;\n created_at: string;\n updated_at: string;\n updater_id: number;\n name: string;\n name_changed: boolean;\n description: string;\n description_changed: boolean;\n is_active: boolean;\n is_locked: boolean;\n category: PoolCategories;\n version: number;\n added_post_ids: Array<number>;\n removed_post_ids: Array<number>;\n};\n\nexport type Post = {\n id: number;\n created_at: string;\n updated_at: string;\n change_seq: number;\n files: {\n meta: {\n md5: string;\n ext: string;\n size: number;\n duration: number | null;\n has_sample: boolean;\n };\n original: {\n width: number;\n height: number;\n url: string | null;\n };\n preview: {\n width: number;\n height: number;\n jpg: string | null;\n webp: string | null;\n };\n sample: {\n width: number;\n height: number;\n jpg: string | null;\n webp: string | null;\n };\n };\n uploader_id: number;\n uploader_name: string;\n approver_id: number | null;\n stats: {\n score: {\n up: number;\n down: number;\n total: number;\n };\n fav_count: number;\n is_favorited: boolean;\n vote: -1 | 0 | 1;\n comment_count: number;\n };\n flags: {\n pending: boolean;\n flagged: boolean;\n note_locked: boolean;\n status_locked: boolean;\n rating_locked: boolean;\n deleted: boolean;\n };\n has: {\n parent: boolean;\n children: boolean;\n active_children: boolean;\n notes: boolean;\n sample: boolean;\n };\n relationships: {\n parent_id: number | null;\n children: Array<number>;\n };\n pools: Array<number>;\n rating: Ratings;\n locked_tags: Array<string>;\n sources: Array<string>;\n description: string;\n};\n\nexport type PostApproval = {\n id: number;\n user_id: number;\n post_id: number;\n created_at: string;\n updated_at: string;\n};\n\nexport type PostDisapproval = {\n id: number;\n user_id: number;\n post_id: number;\n reason: 'borderline_quality' | 'borderline_relevancy' | 'other';\n message: string | null;\n created_at: string;\n updated_at: string;\n};\n\nexport type PostEvent = {\n id: number;\n creator_id: number | null;\n post_id: number;\n action: PostEventActions;\n created_at: string;\n};\n\nexport type PostFlag = {\n id: number;\n created_at: string;\n post_id: number;\n reason: string;\n /**\n * Only visible to creator and Janitor+\n */\n creator_id?: number | null;\n is_resolved: boolean;\n updated_at: string;\n is_deletion: boolean;\n type: 'flag' | 'deletion';\n /**\n * Only visible to creator and Janitor+\n */\n note?: string | null;\n};\n\nexport type PostReplacement = {\n id: number;\n created_at: string;\n updated_at: string;\n post_id: number;\n creator_id: number;\n approver_id: number | null;\n file_ext: string;\n file_size: number;\n image_height: number;\n image_width: number;\n md5: string;\n source: string;\n file_name: string;\n status: 'prompted' | 'approved' | 'rejected' | 'pending' | 'original';\n reason: string;\n};\n\nexport type PostSampleAlternate = {\n fps: number;\n codec: string;\n size: number;\n width: number;\n height: number;\n url: string;\n};\n\nexport type PostSet = {\n id: number;\n created_at: string;\n updated_at: string;\n creator_id: number;\n is_public: boolean;\n name: string;\n shortname: string;\n description: string;\n post_count: number;\n transfer_on_delete: boolean;\n post_ids: Array<number>;\n};\n\nexport type PostVersion = {\n id: number;\n post_id: number;\n tags: string;\n updater_id: number;\n updated_at: string;\n rating: Ratings;\n parent_id: number | null;\n source: string;\n description: string;\n reason: string | null;\n locked_tags: string | null;\n added_tags: Array<string>;\n removed_tags: Array<string>;\n added_locked_tags: Array<string>;\n removed_locked_tags: Array<string>;\n rating_changed: boolean;\n parent_changed: boolean;\n source_changed: boolean;\n description_changed: boolean;\n version: number;\n obsolete_added_tags: string;\n obsolete_removed_tags: string;\n unchanged_tags: string;\n updater_name: string;\n is_hidden: boolean;\n};\n\nexport type RelatedTag = {\n name: string;\n category_id: TagCategories;\n};\n\nexport type StaffNote = {\n id: number;\n created_at: string;\n updated_at: string;\n user_id: number;\n creator_id: number;\n body: string;\n is_deleted: boolean;\n updater_id: number;\n};\n\nexport type Tag = {\n id: number;\n name: string;\n post_count: number;\n related_tags: string;\n related_tags_updated_at: string | null;\n category: TagCategories;\n is_locked: boolean;\n created_at: string;\n updated_at: string;\n};\n\nexport type TagAlias = {\n id: number;\n antecedent_name: string;\n reason: string;\n creator_id: number;\n created_at: string | null;\n forum_post_id: number | null;\n updated_at: string | null;\n forum_topic_id: number | null;\n consequent_name: string;\n status: TagRequestStatuses;\n post_count: number;\n approver_id: number | null;\n};\n\nexport type TagImplication = {\n id: number;\n reason: string;\n creator_id: number;\n created_at: string;\n forum_post_id: number | null;\n antecedent_name: string;\n consequent_name: string;\n status: TagRequestStatuses;\n forum_topic_id: number | null;\n updated_at: string;\n descendant_names: Array<string>;\n approver_id: number | null;\n};\n\nexport type TagPreview = {\n id?: number;\n name: string;\n resolved?: string;\n category?: TagCategories;\n post_count?: number;\n alias?: string;\n implies?: Array<string>;\n};\n\nexport type TagTypeVersion = {\n id: number;\n created_at: string;\n updated_at: string;\n old_type: TagCategories;\n new_type: TagCategories;\n is_locked: boolean;\n tag_id: number;\n creator_id: number;\n};\n\nexport type Takedown = {\n id: number;\n status: 'approved' | 'denied' | 'partial' | 'pending';\n approver_id: number | null;\n reason_hidden: boolean;\n created_at: string;\n updated_at: string;\n post_count: number;\n};\n\nexport type Ticket = {\n id: number;\n creator_id: number;\n reason: string;\n disp_id: number;\n qtype: TicketTypes;\n status: TicketStatuses;\n created_at: string;\n updated_at: string;\n response: string;\n handler_id: number | null;\n /**\n * Only visible to Moderator+.\n */\n claimant_id?: number | null;\n report_reason: string | null;\n accused_id: number | null;\n};\n\nexport type UploadWhitelist = {\n id: number;\n created_at: string;\n updated_at: string;\n pattern: string;\n note: string;\n hidden: boolean;\n allowed: boolean;\n reason: string;\n domain: string;\n path: string;\n};\n\nexport type Upload = {\n id: number;\n source: string;\n rating: Ratings;\n uploader_id: number;\n tag_string: string;\n /**\n * Note: The \"error\" status will be proceeded by an error, ex: \"error: RuntimeError - No file or source URL provided\"\n *\n */\n status: 'completed' | 'duplicate' | 'error' | 'processing' | 'pending';\n backtrace: string | null;\n post_id: number | null;\n /**\n * @deprecated\n */\n md5_confirmation: string | null;\n created_at: string;\n updated_at: string;\n parent_id: number | null;\n md5: string | null;\n file_ext: string | null;\n file_size: number | null;\n image_width: number | null;\n image_height: number | null;\n description: string;\n uploader_name: string;\n};\n\nexport type User = {\n id: number;\n created_at: string;\n name: string;\n level: UserLevels;\n base_upload_limit: number;\n post_upload_count: number;\n post_update_count: number;\n note_update_count: number;\n is_banned: boolean;\n can_approve_posts: boolean;\n can_upload_free: boolean;\n level_string: UserLevelsNames;\n avatar_id: number | null;\n is_verified?: boolean;\n has_cropped_avatar: boolean;\n /**\n * Only visible to Admin+.\n */\n last_logged_in_at?: string;\n};\n\nexport type UserFeedback = {\n id: number;\n user_id: number;\n creator_id: number;\n category: FeedbackCategories;\n body: string;\n created_at: string;\n updated_at: string;\n updater_id: number;\n is_deleted: boolean;\n};\n\nexport type UserNameChangeRequest = {\n id: number;\n approver_id: number;\n user_id: number;\n original_name: string;\n desired_name: string;\n change_reason?: string;\n created_at: string;\n updated_at: string;\n status: 'approved';\n};\n\nexport type WikiPage = {\n id: number;\n created_at: string;\n updated_at: string;\n title: string;\n body: string;\n creator_id: number;\n is_locked: boolean;\n updater_id: number;\n is_deleted: boolean;\n other_names: Array<string>;\n parent: string | null;\n creator_name: string;\n category_id: TagCategories;\n featured_posts?: Array<number>;\n};\n\nexport type WikiPageVersion = {\n id: number;\n created_at: string;\n updated_at: string;\n title: string;\n body: string;\n updater_id: number;\n wiki_page_id: number;\n is_locked: boolean;\n other_names: Array<string>;\n is_deleted: boolean;\n reason: string | null;\n parent: string | null;\n featured_posts?: Array<number>;\n};\n\nexport type ApiKey = {\n id: number;\n updated_at: string;\n created_at: string;\n user_id: number;\n key: string;\n name: string;\n last_used_at: string | null;\n last_used_ip_address: string | null | string;\n last_user_agent: string | null;\n expires_at: string | null;\n notified_at: string | null;\n};\n\nexport type EditHistory = {\n id: number;\n created_at: string;\n updated_at: string;\n body: string;\n subject: string | null;\n versionable_type: 'Blip' | 'Comment' | 'ForumPost';\n versionable_id: number;\n version: number;\n user_id: number;\n};\n\nexport type UserAvatarMenu = {\n has_uploads: boolean;\n has_favorites: boolean;\n has_sets: boolean;\n has_comments: boolean;\n has_forums: boolean;\n};\n\nexport type TagCorrection = {\n post_count: number;\n real_post_count: number;\n category: TagCategories;\n category_cache: TagCategories;\n tag: Tag;\n};\n\nexport type SearchTrend = {\n tag: string;\n count: number;\n day: string;\n};\n\nexport type RisingSearchTrend = {\n name: string;\n pretty_name: string;\n post_count: number;\n category: TagCategories;\n};\n\nexport type SearchTrendBlacklist = {\n id: number;\n tag: string;\n reason: string;\n creator_id: number;\n created_at: string;\n updated_at: string;\n};\n\nexport type MessageErrorResponse = {\n success: boolean;\n message: string;\n code?: string | null;\n};\n\nexport type MessageSuccessResponse = {\n success: true;\n message: string;\n};\n\nexport type PostRecommendation = {\n post_id: number;\n score: number;\n explanation: string | null;\n};\n\nexport type RecommendedPosts = {\n post_id: number;\n model_version: string;\n results: Array<PostRecommendation>;\n};\n\nexport type PostVote = {\n id: number;\n post_id: number;\n user_id: number;\n score: UpDownVote;\n created_at: string;\n updated_at: string;\n};\n\nexport type UpDownVote = 1 | -1;\n\nexport type UpDownMehVote = 1 | 0 | -1;\n\nexport type MinimalUser = {\n id: number;\n name: string;\n level_string: UserLevelsNames;\n favorite_count: number;\n};\n\nexport type ThumbnailPost = {\n id: number;\n created_at: string;\n md5: string;\n file_ext: string;\n width: number;\n height: number;\n size: number;\n preview_url: string | null;\n preview_webp: string | null;\n sample_url: string | null;\n file_url: string | null;\n preview_width: number;\n preview_height: number;\n uploader_id: number;\n uploader: string;\n score: number;\n fav_count: number;\n is_favorited: boolean;\n vote: -1 | 0 | 1;\n comment_count: number;\n /**\n * space separated list of flags:\n * - pending\n * - flagged\n * - deleted\n *\n */\n flags: string;\n /**\n * space separated list of ids\n */\n pools: string;\n rating: Ratings;\n tags: string;\n};\n\nexport type PostData = {\n post_data: Array<ThumbnailPost>;\n};\n\nexport type CommentVote = {\n id: number;\n comment_id: number;\n user_id: number;\n score: UpDownVote;\n created_at: string;\n updated_at: string;\n};\n\nexport type LegacyPost = {\n id: number;\n created_at: string;\n updated_at: string;\n file: {\n width: number;\n height: number;\n ext: string;\n size: number;\n md5: string;\n url: string | null;\n };\n preview: {\n width: number;\n height: number;\n url: string | null;\n };\n sample: {\n has: boolean;\n height: number | null;\n width: number | null;\n url: string | null;\n alternates: {\n has?: boolean;\n original?: PostSampleAlternate;\n variants?: {\n webm?: PostSampleAlternate;\n mp4?: PostSampleAlternate;\n };\n samples?: {\n '480p'?: PostSampleAlternate;\n '720p'?: PostSampleAlternate;\n };\n };\n };\n score: {\n up: number;\n down: number;\n total: number;\n };\n tags: {\n general: Array<string>;\n artist: Array<string>;\n copyright: Array<string>;\n character: Array<string>;\n species: Array<string>;\n invalid: Array<string>;\n meta: Array<string>;\n lore: Array<string>;\n contributor: Array<string>;\n };\n locked_tags: Array<string> | null;\n change_seq: number;\n flags: {\n pending: boolean;\n flagged: boolean;\n note_locked: boolean;\n status_locked: boolean;\n rating_locked: boolean;\n deleted: boolean;\n };\n rating: Ratings;\n fav_count: number;\n sources: Array<string>;\n pools: Array<number>;\n relationships: {\n parent_id: number | null;\n has_children: boolean;\n has_active_children: boolean;\n children: Array<number>;\n };\n approver_id: number | null;\n uploader_id: number;\n description: string;\n comment_count: number;\n is_favorited: boolean;\n has_notes: boolean;\n duration: number | null;\n uploader_name: string;\n vote: -1 | 0 | 1;\n};\n\nexport type BasicPost = Post & {\n tags: Array<string>;\n};\n\nexport type ExtendedPost = Post & {\n tags: {\n general: Array<string>;\n artist: Array<string>;\n contributor: Array<string>;\n copyright: Array<string>;\n character: Array<string>;\n species: Array<string>;\n invalid: Array<string>;\n meta: Array<string>;\n lore: Array<string>;\n };\n};\n\nexport type ExceptionLog = {\n id: number;\n created_at: string;\n updated_at: string;\n class_name: string;\n version: string;\n extra_params: {\n [key: string]: unknown;\n };\n message: string;\n trace: string;\n code: string;\n user_id: number;\n};\n\nexport type Appeal = {\n id: number;\n creator_id?: number;\n disp_id: string;\n qtype: 'flag';\n status: 'pending' | 'partial' | 'approved' | 'rejected';\n reason?: string;\n response?: string;\n claimant_id?: number | null;\n handler_id: number | null;\n accused_id?: number;\n created_at: string;\n updated_at: string;\n};\n\nexport type DbExport = {\n name: DbExportNames;\n file_name: string;\n file_size: number;\n updated_at: string;\n url: string;\n /**\n * SHA-256\n */\n checksum: string;\n};\n\nexport type DbExportNames = 'artists' | 'bulk_update_requests' | 'pools' | 'post_replacements' | 'posts' | 'post_versions' | 'tag_aliases' | 'tag_implications' | 'tags' | 'wiki_pages';\n\nexport type UserLevels = 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80;\n\nexport type UserLevelsNames = 'Anonymous' | 'Blocked' | 'Member' | 'Privileged' | 'Former Staff' | 'Staff' | 'Janitor' | 'Moderator' | 'Admin';\n\nexport type StaffFile = {\n id: number;\n creator_id: number;\n storage_id: string;\n md5: string;\n file_ext: string;\n file_size: number;\n original_filename: string;\n title: string;\n description: string | null;\n created_at: string;\n updated_at: string;\n};\n\nexport type StaffWiki = {\n id: number;\n creator_id: number;\n updater_id: number;\n claimant_id: number | null;\n title: string;\n body: string;\n created_at: string;\n updated_at: string;\n};\n\nexport type StaffWikiVersion = {\n id: number;\n staff_wiki_id: number;\n updater_id: number;\n claimant_id: number | null;\n title: string;\n body: string;\n created_at: string;\n updated_at: string;\n};\n\nexport type VoteTrend = Tag | VoteTrendMetatag | VoteTrendUploader;\n\nexport type VoteTrendMetatag = {\n name: string;\n post_count: number;\n uploader_id: null;\n uploader: null;\n};\n\nexport type VoteTrendUploader = {\n name: string;\n post_count: number;\n uploader_id: number;\n uploader: User;\n};\n\n/**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\nexport type IdQuery = string | number;\n\n/**\n * The maximum number of results to return. Between 0 and 320.\n */\nexport type LimitQuery = number;\n\n/**\n * The page number of results to get. Between 1 and 750.\n */\nexport type PageQuery = number;\n\n/**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\nexport type IpAddrQuery = string;\n\n/**\n * The order of the results.\n */\nexport type OrderQuery = 'id_asc' | 'id_desc';\n\n/**\n * Use the new V2 format. See the `v2=true` responses.\n */\nexport type V2Query = boolean;\n\n/**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\nexport type ModeQuery = 'basic' | 'extended' | 'thumbnail';\n\n/**\n * The ID of the item.\n */\nexport type IdPath = number;\n\n/**\n * An ID that can be either an integer or a name.\n */\nexport type IdOrNamePath = number | string;\n\nexport type Warning = WarningRecordType;\n\nexport type ApiKeysIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id' | 'id_asc' | 'id_desc' | 'name' | 'name_asc' | 'name_desc' | 'created_at' | 'created_at_asc' | 'created_at_desc' | 'updated_at' | 'updated_at_asc' | 'updated_at_desc' | 'expires_at' | 'expires_at_asc' | 'expires_at_desc' | 'last_used_at' | 'last_used_at_asc' | 'last_used_at_desc';\n 'search[name_matches]'?: string;\n 'search[is_expired]'?: boolean;\n };\n url: '/api_keys.json';\n};\n\nexport type ApiKeysIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ApiKeysIndexError = ApiKeysIndexErrors[keyof ApiKeysIndexErrors];\n\nexport type ApiKeysIndexResponses = {\n /**\n * Success\n */\n 200: Array<ApiKey>;\n};\n\nexport type ApiKeysIndexResponse = ApiKeysIndexResponses[keyof ApiKeysIndexResponses];\n\nexport type ApiKeysCreateData = {\n body?: {\n /**\n * CSRF Token\n */\n authenticity_token: string;\n 'api_key[name]': string;\n 'api_key[duration]'?: number | 'never' | 'custom';\n 'api_key[expires_at]'?: string;\n };\n path?: never;\n query?: never;\n url: '/api_keys.json';\n};\n\nexport type ApiKeysCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ApiKeysCreateError = ApiKeysCreateErrors[keyof ApiKeysCreateErrors];\n\nexport type ApiKeysCreateResponses = {\n /**\n * Success\n */\n 201: ApiKey;\n};\n\nexport type ApiKeysCreateResponse = ApiKeysCreateResponses[keyof ApiKeysCreateResponses];\n\nexport type ApiKeysDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/api_keys/{id}.json';\n};\n\nexport type ApiKeysDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ApiKeysDestroyError = ApiKeysDestroyErrors[keyof ApiKeysDestroyErrors];\n\nexport type ApiKeysDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ApiKeysDestroyResponse = ApiKeysDestroyResponses[keyof ApiKeysDestroyResponses];\n\nexport type ApiKeysRegenerateData = {\n body?: {\n /**\n * CSRF Token\n */\n authenticity_token: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/api_keys/{id}/regenerate.json';\n};\n\nexport type ApiKeysRegenerateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ApiKeysRegenerateError = ApiKeysRegenerateErrors[keyof ApiKeysRegenerateErrors];\n\nexport type ApiKeysRegenerateResponses = {\n /**\n * Success\n */\n 201: ApiKey;\n};\n\nexport type ApiKeysRegenerateResponse = ApiKeysRegenerateResponses[keyof ApiKeysRegenerateResponses];\n\nexport type AppealsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n /**\n * Must be Janitor+ to use any id other than your own.\n */\n 'search[creator_id]'?: number;\n /**\n * Must be Janitor+.\n */\n 'search[creator_name]'?: string;\n /**\n * Must be Janitor+.\n */\n 'search[claimant_id]'?: number;\n /**\n * Must be Janitor+.\n */\n 'search[claimant_name]'?: string;\n /**\n * Must be Janitor+.\n */\n 'search[accused_id]'?: number;\n /**\n * Must be Janitor+.\n */\n 'search[accused_name]'?: string;\n 'search[qtype]'?: 'flag';\n 'search[status]'?: ('pending' | 'partial' | 'approved' | 'rejected') & ('pending_claimed' | 'pending_unclaimed');\n };\n url: '/appeals.json';\n};\n\nexport type AppealsIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AppealsIndexError = AppealsIndexErrors[keyof AppealsIndexErrors];\n\nexport type AppealsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ApiKey>;\n};\n\nexport type AppealsIndexResponse = AppealsIndexResponses[keyof AppealsIndexResponses];\n\nexport type AppealsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/appeals/{id}.json';\n};\n\nexport type AppealsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AppealsShowError = AppealsShowErrors[keyof AppealsShowErrors];\n\nexport type AppealsShowResponses = {\n /**\n * Success\n */\n 200: Appeal;\n};\n\nexport type AppealsShowResponse = AppealsShowResponses[keyof AppealsShowResponses];\n\nexport type AppealsUpdateData = {\n body?: {\n status?: 'partial' | 'approved';\n response?: string;\n /**\n * An update dmail will always be sent when the status is changed.\n */\n send_update_dmail?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/appeals/{id}.json';\n};\n\nexport type AppealsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AppealsUpdateError = AppealsUpdateErrors[keyof AppealsUpdateErrors];\n\nexport type AppealsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type AppealsUpdateResponse = AppealsUpdateResponses[keyof AppealsUpdateResponses];\n\nexport type AppealsClaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/appeals/{id}/claim.json';\n};\n\nexport type AppealsClaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AppealsClaimError = AppealsClaimErrors[keyof AppealsClaimErrors];\n\nexport type AppealsClaimResponses = {\n /**\n * Success\n */\n 201: Appeal;\n};\n\nexport type AppealsClaimResponse = AppealsClaimResponses[keyof AppealsClaimResponses];\n\nexport type AppealsUnclaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/appeals/{id}/unclaim.json';\n};\n\nexport type AppealsUnclaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AppealsUnclaimError = AppealsUnclaimErrors[keyof AppealsUnclaimErrors];\n\nexport type AppealsUnclaimResponses = {\n /**\n * Success\n */\n 201: Appeal;\n};\n\nexport type AppealsUnclaimResponse = AppealsUnclaimResponses[keyof AppealsUnclaimResponses];\n\nexport type ArtistsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'updated_at' | 'name' | 'post_count';\n 'search[name]'?: string;\n 'search[group_name]'?: string;\n 'search[any_other_name_like]'?: string;\n 'search[any_name_matches]'?: string;\n 'search[any_name_or_url_matches]'?: string;\n 'search[url_matches]'?: string;\n 'search[creator_name]'?: string;\n 'search[creator_id]'?: number;\n 'search[has_tag]'?: boolean;\n 'search[is_linked]'?: string;\n 'search[linked_user_id]'?: number;\n 'search[linked_user_name]'?: string;\n };\n url: '/artists.json';\n};\n\nexport type ArtistsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Artist & {\n urls: Array<ArtistUrl>;\n }>;\n};\n\nexport type ArtistsIndexResponse = ArtistsIndexResponses[keyof ArtistsIndexResponses];\n\nexport type ArtistsCreateData = {\n body?: {\n name: string;\n other_names?: Array<string>;\n other_names_string?: string;\n url_string?: string;\n notes?: string;\n group_name?: string;\n /**\n * Only usable for Staff+\n */\n linked_user_id?: number | null;\n /**\n * Only usable for Staff+\n */\n is_locked?: boolean;\n };\n path?: never;\n query?: never;\n url: '/artists.json';\n};\n\nexport type ArtistsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ArtistsCreateError = ArtistsCreateErrors[keyof ArtistsCreateErrors];\n\nexport type ArtistsCreateResponses = {\n /**\n * Success\n */\n 201: Artist;\n};\n\nexport type ArtistsCreateResponse = ArtistsCreateResponses[keyof ArtistsCreateResponses];\n\nexport type ArtistsDestroyData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/artists/{idOrName}.json';\n};\n\nexport type ArtistsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ArtistsDestroyError = ArtistsDestroyErrors[keyof ArtistsDestroyErrors];\n\nexport type ArtistsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ArtistsDestroyResponse = ArtistsDestroyResponses[keyof ArtistsDestroyResponses];\n\nexport type ArtistsShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/artists/{idOrName}.json';\n};\n\nexport type ArtistsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ArtistsShowError = ArtistsShowErrors[keyof ArtistsShowErrors];\n\nexport type ArtistsShowResponses = {\n /**\n * Success\n */\n 200: Artist & {\n domains: Array<Array<string | number>>;\n urls: Array<ArtistUrl>;\n };\n};\n\nexport type ArtistsShowResponse = ArtistsShowResponses[keyof ArtistsShowResponses];\n\nexport type ArtistsUpdateData = {\n body?: {\n /**\n * Only usable for Staff+\n */\n name?: string;\n other_names?: Array<string>;\n other_names_string?: string;\n url_string?: string;\n notes?: string;\n group_name?: string;\n /**\n * Only usable for Staff+\n */\n linked_user_id?: number | null;\n /**\n * Only usable for Staff+\n */\n is_locked?: boolean;\n };\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/artists/{idOrName}.json';\n};\n\nexport type ArtistsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ArtistsUpdateError = ArtistsUpdateErrors[keyof ArtistsUpdateErrors];\n\nexport type ArtistsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ArtistsUpdateResponse = ArtistsUpdateResponses[keyof ArtistsUpdateResponses];\n\nexport type ArtistsRevertData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query: {\n /**\n * The version ID to revert to.\n */\n version_id: number;\n };\n url: '/artists/{idOrName}/revert.json';\n};\n\nexport type ArtistsRevertErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Access Denied\n */\n 422: AccessDeniedResponse;\n};\n\nexport type ArtistsRevertError = ArtistsRevertErrors[keyof ArtistsRevertErrors];\n\nexport type ArtistsRevertResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ArtistsRevertResponse = ArtistsRevertResponses[keyof ArtistsRevertResponses];\n\nexport type ArtistVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc' | 'name';\n /**\n * The name of the artist.\n */\n 'search[name]'?: string;\n /**\n * The id of the artist.\n */\n 'search[artist_id]'?: string;\n /**\n * The name of the user that updated the artist.\n */\n 'search[updater_name]'?: string;\n /**\n * The id of the user that updated the artist.\n */\n 'search[updater_id]'?: string;\n };\n url: '/artist_versions.json';\n};\n\nexport type ArtistVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ArtistVersion>;\n};\n\nexport type ArtistVersionsIndexResponse = ArtistVersionsIndexResponses[keyof ArtistVersionsIndexResponses];\n\nexport type ArtistUrlsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id' | 'id_asc' | 'id_desc' | 'artist_id' | 'artist_id_asc' | 'artist_id_desc' | 'url' | 'url_asc' | 'url_desc' | 'normalized_url' | 'normalized_url_asc' | 'normalized_url_desc' | 'created_at' | 'created_at_asc' | 'created_at_desc' | 'updated_at' | 'updated_at_asc' | 'updated_at_desc';\n /**\n * The name of the artist.\n */\n 'search[artist_name]'?: string;\n /**\n * The id of the artist.\n */\n 'search[artist_id]'?: string;\n /**\n * If the artist url is active.\n */\n 'search[is_active]'?: boolean;\n /**\n * The url.\n */\n 'search[url]'?: string;\n /**\n * The normalized url. (http:, trailing `/`)\n */\n 'search[normalized_url]'?: string;\n /**\n * Legacy nested search for artist. Supports the same parameters as /artists.json.\n *\n * @deprecated\n */\n 'search[artist]'?: {\n [key: string]: unknown;\n };\n /**\n * Legacy name for `search[url]`.\n *\n * @deprecated\n */\n 'search[url_matches]'?: string;\n /**\n * Legacy name for `search[normalized_url]`.\n *\n * @deprecated\n */\n 'search[normalized_url_matches]'?: string;\n };\n url: '/artist_urls.json';\n};\n\nexport type ArtistUrlsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ArtistUrl & {\n artist: Artist;\n }>;\n};\n\nexport type ArtistUrlsIndexResponse = ArtistUrlsIndexResponses[keyof ArtistUrlsIndexResponses];\n\nexport type AvoidPostingsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[creator_name]'?: string;\n 'search[creator_id]'?: string;\n /**\n * Any name matching.\n */\n 'search[any_name_matches]'?: string;\n /**\n * The artist name of the avoid posting entry.\n */\n 'search[artist_name]'?: string;\n /**\n * The artist id for the avoid posting entry.\n */\n 'search[artist_id]'?: string;\n /**\n * Any other name matching.\n */\n 'search[any_other_name_matches]'?: string;\n /**\n * The details of the avoid posting entry.\n */\n 'search[details]'?: string;\n /**\n * The staff notes on the avoid posting entry. Must be Staff+ to use.\n */\n 'search[staff_notes]'?: string;\n /**\n * If the avoid posting entry is active.\n */\n 'search[is_active]'?: boolean;\n };\n url: '/avoid_postings.json';\n};\n\nexport type AvoidPostingsIndexResponses = {\n /**\n * Success\n */\n 200: Array<AvoidPosting>;\n};\n\nexport type AvoidPostingsIndexResponse = AvoidPostingsIndexResponses[keyof AvoidPostingsIndexResponses];\n\nexport type AvoidPostingsCreateData = {\n body?: {\n details?: string;\n staff_notes?: string;\n is_active?: boolean;\n artist_attributes: {\n /**\n * If provided and the artist does not exist, an artist will be created.\n */\n name: string;\n other_names_string?: string;\n other_names?: Array<string>;\n group_name?: string;\n linked_user_id?: number;\n };\n };\n path?: never;\n query?: never;\n url: '/avoid_postings.json';\n};\n\nexport type AvoidPostingsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type AvoidPostingsCreateError = AvoidPostingsCreateErrors[keyof AvoidPostingsCreateErrors];\n\nexport type AvoidPostingsCreateResponses = {\n /**\n * Success\n */\n 201: AvoidPosting;\n};\n\nexport type AvoidPostingsCreateResponse = AvoidPostingsCreateResponses[keyof AvoidPostingsCreateResponses];\n\nexport type AvoidPostingsDestroyData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/avoid_postings/{idOrName}.json';\n};\n\nexport type AvoidPostingsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AvoidPostingsDestroyError = AvoidPostingsDestroyErrors[keyof AvoidPostingsDestroyErrors];\n\nexport type AvoidPostingsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type AvoidPostingsDestroyResponse = AvoidPostingsDestroyResponses[keyof AvoidPostingsDestroyResponses];\n\nexport type AvoidPostingsShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/avoid_postings/{idOrName}.json';\n};\n\nexport type AvoidPostingsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AvoidPostingsShowError = AvoidPostingsShowErrors[keyof AvoidPostingsShowErrors];\n\nexport type AvoidPostingsShowResponses = {\n /**\n * Success\n */\n 200: AvoidPosting;\n};\n\nexport type AvoidPostingsShowResponse = AvoidPostingsShowResponses[keyof AvoidPostingsShowResponses];\n\nexport type AvoidPostingsUpdateData = {\n body?: {\n details?: string;\n staff_notes?: string;\n is_active?: boolean;\n artist_attributes?: {\n /**\n * If provided and the artist does not exist, an artist will be created.\n */\n name?: string;\n other_names_string?: string;\n other_names?: Array<string>;\n group_name?: string;\n linked_user_id?: number;\n };\n };\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/avoid_postings/{idOrName}.json';\n};\n\nexport type AvoidPostingsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type AvoidPostingsUpdateError = AvoidPostingsUpdateErrors[keyof AvoidPostingsUpdateErrors];\n\nexport type AvoidPostingsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type AvoidPostingsUpdateResponse = AvoidPostingsUpdateResponses[keyof AvoidPostingsUpdateResponses];\n\nexport type AvoidPostingsDeleteData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/avoid_postings/{idOrName}/delete.json';\n};\n\nexport type AvoidPostingsDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AvoidPostingsDeleteError = AvoidPostingsDeleteErrors[keyof AvoidPostingsDeleteErrors];\n\nexport type AvoidPostingsDeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type AvoidPostingsDeleteResponse = AvoidPostingsDeleteResponses[keyof AvoidPostingsDeleteResponses];\n\nexport type AvoidPostingsUndeleteData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/avoid_postings/{idOrName}/undelete.json';\n};\n\nexport type AvoidPostingsUndeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type AvoidPostingsUndeleteError = AvoidPostingsUndeleteErrors[keyof AvoidPostingsUndeleteErrors];\n\nexport type AvoidPostingsUndeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type AvoidPostingsUndeleteResponse = AvoidPostingsUndeleteResponses[keyof AvoidPostingsUndeleteResponses];\n\nexport type AvoidPostingVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n /**\n * The name of the updater of the avoid posting entry.\n */\n 'search[updater_name]'?: string;\n /**\n * The ID of the updater of the avoid posting entry.\n */\n 'search[updater_id]'?: string;\n /**\n * Any name matching.\n */\n 'search[any_name_matches]'?: string;\n /**\n * The artist name of the avoid posting entry.\n */\n 'search[artist_name]'?: string;\n /**\n * The artist id for the avoid posting entry.\n */\n 'search[artist_id]'?: string;\n /**\n * Any other name matching.\n */\n 'search[any_other_name_matches]'?: string;\n /**\n * Any other name matching.\n */\n 'search[group_name]'?: string;\n /**\n * If the avoid posting entry is active.\n */\n 'search[is_active]'?: boolean;\n };\n url: '/avoid_posting_versions.json';\n};\n\nexport type AvoidPostingVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<AvoidPostingVersion>;\n};\n\nexport type AvoidPostingVersionsIndexResponse = AvoidPostingVersionsIndexResponses[keyof AvoidPostingVersionsIndexResponses];\n\nexport type BansIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc' | 'expires_at_desc';\n /**\n * The ID of the banner.\n */\n 'search[banner_id]'?: string;\n /**\n * The name of banner.\n */\n 'search[banner_name]'?: string;\n /**\n * The ID of the banned user.\n */\n 'search[user_id]'?: string;\n /**\n * The name of the banned user.\n */\n 'search[user_name]'?: string;\n /**\n * The reason of the ban.\n */\n 'search[reason_matches]'?: string;\n /**\n * If the ban is expired.\n */\n 'search[expired]'?: string;\n };\n url: '/bans.json';\n};\n\nexport type BansIndexResponses = {\n /**\n * Success\n */\n 200: Array<Ban>;\n};\n\nexport type BansIndexResponse = BansIndexResponses[keyof BansIndexResponses];\n\nexport type BansShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/bans/{id}.json';\n};\n\nexport type BansShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BansShowError = BansShowErrors[keyof BansShowErrors];\n\nexport type BansShowResponses = {\n /**\n * Success\n */\n 200: Ban;\n};\n\nexport type BansShowResponse = BansShowResponses[keyof BansShowResponses];\n\nexport type BlipsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'updated_at' | 'updated_at_desc';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[body_matches]'?: string;\n 'search[response_to]'?: number;\n };\n url: '/blips.json';\n};\n\nexport type BlipsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Blip>;\n};\n\nexport type BlipsIndexResponse = BlipsIndexResponses[keyof BlipsIndexResponses];\n\nexport type BlipsCreateData = {\n body?: {\n body: string;\n response_to?: number;\n };\n path?: never;\n query?: never;\n url: '/blips.json';\n};\n\nexport type BlipsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type BlipsCreateError = BlipsCreateErrors[keyof BlipsCreateErrors];\n\nexport type BlipsCreateResponses = {\n /**\n * Success\n */\n 201: Blip;\n};\n\nexport type BlipsCreateResponse = BlipsCreateResponses[keyof BlipsCreateResponses];\n\nexport type BlipsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}.json';\n};\n\nexport type BlipsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BlipsDestroyError = BlipsDestroyErrors[keyof BlipsDestroyErrors];\n\nexport type BlipsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type BlipsDestroyResponse = BlipsDestroyResponses[keyof BlipsDestroyResponses];\n\nexport type BlipsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}.json';\n};\n\nexport type BlipsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BlipsShowError = BlipsShowErrors[keyof BlipsShowErrors];\n\nexport type BlipsShowResponses = {\n /**\n * Success\n */\n 200: Blip;\n};\n\nexport type BlipsShowResponse = BlipsShowResponses[keyof BlipsShowResponses];\n\nexport type BlipsUpdateData = {\n body?: {\n body?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}.json';\n};\n\nexport type BlipsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type BlipsUpdateError = BlipsUpdateErrors[keyof BlipsUpdateErrors];\n\nexport type BlipsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type BlipsUpdateResponse = BlipsUpdateResponses[keyof BlipsUpdateResponses];\n\nexport type BlipsDeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}/delete.json';\n};\n\nexport type BlipsDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BlipsDeleteError = BlipsDeleteErrors[keyof BlipsDeleteErrors];\n\nexport type BlipsUndeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}/undelete.json';\n};\n\nexport type BlipsUndeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BlipsUndeleteError = BlipsUndeleteErrors[keyof BlipsUndeleteErrors];\n\nexport type BlipsWarningData = {\n body?: Warning;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/blips/{id}/warning.json';\n};\n\nexport type BlipsWarningErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BlipsWarningError = BlipsWarningErrors[keyof BlipsWarningErrors];\n\nexport type BlipsWarningResponses = {\n /**\n * Success\n */\n 200: DTextResponse;\n};\n\nexport type BlipsWarningResponse = BlipsWarningResponses[keyof BlipsWarningResponses];\n\nexport type BulkUpdateRequestsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'status_desc' | 'updated_at_desc' | 'updated_at_asc';\n 'search[user_id]'?: number;\n 'search[user_name]'?: string;\n 'search[approver_id]'?: number;\n 'search[approver_name]'?: string;\n 'search[forum_topic_id]'?: number;\n 'search[forum_post_id]'?: number;\n /**\n * Multiple can be specified via comma separating.\n */\n 'search[status]'?: 'approved' | 'rejected' | 'pending';\n 'search[title_matches]'?: string;\n 'search[script_matches]'?: string;\n };\n url: '/bulk_update_requests.json';\n};\n\nexport type BulkUpdateRequestsIndexResponses = {\n /**\n * Success\n */\n 200: Array<BulkUpdateRequest>;\n};\n\nexport type BulkUpdateRequestsIndexResponse = BulkUpdateRequestsIndexResponses[keyof BulkUpdateRequestsIndexResponses];\n\nexport type BulkUpdateRequestsCreateData = {\n body?: {\n script: string;\n title: string;\n reason: string;\n /**\n * You must be able to reply to the topic.\n */\n forum_topic_id?: number;\n /**\n * Only usable for Admin+\n */\n skip_forum?: boolean;\n };\n path?: never;\n query?: never;\n url: '/bulk_update_requests.json';\n};\n\nexport type BulkUpdateRequestsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type BulkUpdateRequestsCreateError = BulkUpdateRequestsCreateErrors[keyof BulkUpdateRequestsCreateErrors];\n\nexport type BulkUpdateRequestsCreateResponses = {\n /**\n * Success\n */\n 201: BulkUpdateRequest;\n};\n\nexport type BulkUpdateRequestsCreateResponse = BulkUpdateRequestsCreateResponses[keyof BulkUpdateRequestsCreateResponses];\n\nexport type BulkUpdateRequestsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/bulk_update_requests/{id}.json';\n};\n\nexport type BulkUpdateRequestsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BulkUpdateRequestsDestroyError = BulkUpdateRequestsDestroyErrors[keyof BulkUpdateRequestsDestroyErrors];\n\nexport type BulkUpdateRequestsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type BulkUpdateRequestsDestroyResponse = BulkUpdateRequestsDestroyResponses[keyof BulkUpdateRequestsDestroyResponses];\n\nexport type BulkUpdateRequestsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/bulk_update_requests/{id}.json';\n};\n\nexport type BulkUpdateRequestsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BulkUpdateRequestsShowError = BulkUpdateRequestsShowErrors[keyof BulkUpdateRequestsShowErrors];\n\nexport type BulkUpdateRequestsShowResponses = {\n /**\n * Success\n */\n 200: BulkUpdateRequest;\n};\n\nexport type BulkUpdateRequestsShowResponse = BulkUpdateRequestsShowResponses[keyof BulkUpdateRequestsShowResponses];\n\nexport type BulkUpdateRequestsUpdateData = {\n body?: {\n script?: string;\n /**\n * You must be Admin+.\n */\n forum_topic_id?: string;\n /**\n * You must be Admin+.\n */\n forum_post_id?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/bulk_update_requests/{id}.json';\n};\n\nexport type BulkUpdateRequestsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type BulkUpdateRequestsUpdateError = BulkUpdateRequestsUpdateErrors[keyof BulkUpdateRequestsUpdateErrors];\n\nexport type BulkUpdateRequestsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type BulkUpdateRequestsUpdateResponse = BulkUpdateRequestsUpdateResponses[keyof BulkUpdateRequestsUpdateResponses];\n\nexport type BulkUpdateRequestsApproveData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/bulk_update_requests/{id}/approve.json';\n};\n\nexport type BulkUpdateRequestsApproveErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type BulkUpdateRequestsApproveError = BulkUpdateRequestsApproveErrors[keyof BulkUpdateRequestsApproveErrors];\n\nexport type BulkUpdateRequestsApproveResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type BulkUpdateRequestsApproveResponse = BulkUpdateRequestsApproveResponses[keyof BulkUpdateRequestsApproveResponses];\n\nexport type CommentsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'status' | 'status_desc' | 'updated_at_desc';\n group_by?: 'comment' | 'post';\n 'search[body_matches]'?: string;\n /**\n * Accepts a comma separated list.\n */\n 'search[post_id]'?: string;\n 'search[post_tags_match]'?: string;\n 'search[post_note_updater_name]'?: string;\n 'search[post_note_updater_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[creator_id]'?: number;\n 'search[is_sticky]'?: boolean;\n /**\n * Only usable by Staff+\n */\n 'search[is_hidden]'?: boolean;\n 'search[do_not_bump_post]'?: boolean;\n };\n url: '/comments.json';\n};\n\nexport type CommentsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Comment>;\n};\n\nexport type CommentsIndexResponse = CommentsIndexResponses[keyof CommentsIndexResponses];\n\nexport type CommentsCreateData = {\n body?: {\n body: string;\n post_id: number;\n do_not_bump_post?: boolean;\n /**\n * Only usable for Staff+\n */\n is_sticky?: boolean;\n /**\n * Only usable for Moderator+\n */\n is_hidden?: boolean;\n };\n path?: never;\n query?: never;\n url: '/comments.json';\n};\n\nexport type CommentsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type CommentsCreateError = CommentsCreateErrors[keyof CommentsCreateErrors];\n\nexport type CommentsCreateResponses = {\n /**\n * Success\n */\n 201: Comment;\n};\n\nexport type CommentsCreateResponse = CommentsCreateResponses[keyof CommentsCreateResponses];\n\nexport type CommentsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}.json';\n};\n\nexport type CommentsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type CommentsDestroyError = CommentsDestroyErrors[keyof CommentsDestroyErrors];\n\nexport type CommentsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type CommentsDestroyResponse = CommentsDestroyResponses[keyof CommentsDestroyResponses];\n\nexport type CommentsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}.json';\n};\n\nexport type CommentsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type CommentsShowError = CommentsShowErrors[keyof CommentsShowErrors];\n\nexport type CommentsShowResponses = {\n /**\n * Success\n */\n 200: Comment;\n};\n\nexport type CommentsShowResponse = CommentsShowResponses[keyof CommentsShowResponses];\n\nexport type CommentsUpdateData = {\n body?: {\n body?: string;\n /**\n * Only usable for Staff+\n */\n is_sticky?: boolean;\n /**\n * Only usable for Moderator+\n */\n is_hidden?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}.json';\n};\n\nexport type CommentsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type CommentsUpdateError = CommentsUpdateErrors[keyof CommentsUpdateErrors];\n\nexport type CommentsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type CommentsUpdateResponse = CommentsUpdateResponses[keyof CommentsUpdateResponses];\n\nexport type CommentsHideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}/hide.json';\n};\n\nexport type CommentsHideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type CommentsHideError = CommentsHideErrors[keyof CommentsHideErrors];\n\nexport type CommentsHideResponses = {\n /**\n * Success\n */\n 201: Comment;\n};\n\nexport type CommentsHideResponse = CommentsHideResponses[keyof CommentsHideResponses];\n\nexport type CommentsUnhideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}/unhide.json';\n};\n\nexport type CommentsUnhideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type CommentsUnhideError = CommentsUnhideErrors[keyof CommentsUnhideErrors];\n\nexport type CommentsUnhideResponses = {\n /**\n * Success\n */\n 201: Comment;\n};\n\nexport type CommentsUnhideResponse = CommentsUnhideResponses[keyof CommentsUnhideResponses];\n\nexport type CommentsWarningData = {\n body?: Warning;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}/warning.json';\n};\n\nexport type CommentsWarningErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type CommentsWarningError = CommentsWarningErrors[keyof CommentsWarningErrors];\n\nexport type CommentsWarningResponses = {\n /**\n * Success\n */\n 200: DTextResponse;\n};\n\nexport type CommentsWarningResponse = CommentsWarningResponses[keyof CommentsWarningResponses];\n\nexport type CommentVotesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/comments/{id}/votes.json';\n};\n\nexport type CommentVotesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type CommentVotesDestroyError = CommentVotesDestroyErrors[keyof CommentVotesDestroyErrors];\n\nexport type CommentVotesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type CommentVotesDestroyResponse = CommentVotesDestroyResponses[keyof CommentVotesDestroyResponses];\n\nexport type CommentVotesCreateData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n score: UpDownVote;\n no_unvote?: boolean;\n };\n url: '/comments/{id}/votes.json';\n};\n\nexport type CommentVotesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type CommentVotesCreateError = CommentVotesCreateErrors[keyof CommentVotesCreateErrors];\n\nexport type CommentVotesCreateResponses = {\n /**\n * Success\n */\n 200: {\n score: number;\n our_score: number;\n };\n};\n\nexport type CommentVotesCreateResponse = CommentVotesCreateResponses[keyof CommentVotesCreateResponses];\n\nexport type CommentVotesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results. You must be Admin+.\n */\n 'search[order]'?: 'id_asc' | 'id_desc' | 'ip_addr';\n 'search[post_id]'?: number;\n 'search[user_name]'?: string;\n 'search[user_id]'?: number;\n /**\n * Only usable if one of `comment_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[comment_creator_name]'?: string;\n /**\n * Only usable if one of `comment_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[comment_creator_id]'?: number;\n /**\n * You must be Admin+. Only usable if one of `comment_id`, `user_name`, or `user_id` is also provided. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[user_ip_addr]'?: string;\n /**\n * Only usable if one of `comment_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[score]'?: UpDownVote;\n /**\n * You must be Admin+. Only usable if one of `comment_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[duplicates_only]'?: boolean;\n };\n url: '/comment_votes.json';\n};\n\nexport type CommentVotesIndexResponses = {\n /**\n * Success\n */\n 200: Array<CommentVote>;\n};\n\nexport type CommentVotesIndexResponse = CommentVotesIndexResponses[keyof CommentVotesIndexResponses];\n\nexport type CommentVotesLockData = {\n body?: never;\n path?: never;\n query: {\n /**\n * The IDs of the comment votes, comma separated.\n */\n ids: string;\n };\n url: '/comment_votes/lock.json';\n};\n\nexport type CommentVotesLockErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type CommentVotesLockError = CommentVotesLockErrors[keyof CommentVotesLockErrors];\n\nexport type CommentVotesLockResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type CommentVotesLockResponse = CommentVotesLockResponses[keyof CommentVotesLockResponses];\n\nexport type CommentVotesDeleteData = {\n body?: never;\n path?: never;\n query: {\n /**\n * The IDs of the comment votes, comma separated.\n */\n ids: string;\n };\n url: '/comment_votes/delete.json';\n};\n\nexport type CommentVotesDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type CommentVotesDeleteError = CommentVotesDeleteErrors[keyof CommentVotesDeleteErrors];\n\nexport type CommentVotesDeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type CommentVotesDeleteResponse = CommentVotesDeleteResponses[keyof CommentVotesDeleteResponses];\n\nexport type DbExportsIndexData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/db_exports.json';\n};\n\nexport type DbExportsIndexResponses = {\n /**\n * Success\n */\n 200: Array<DbExport>;\n};\n\nexport type DbExportsIndexResponse = DbExportsIndexResponses[keyof DbExportsIndexResponses];\n\nexport type HealthIndexData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/health';\n};\n\nexport type HealthIndexResponses = {\n /**\n * Success\n */\n 200: string;\n};\n\nexport type HealthIndexResponse = HealthIndexResponses[keyof HealthIndexResponses];\n\nexport type DmailsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[title_matches]'?: string;\n 'search[message_matches]'?: string;\n 'search[to_name]'?: string;\n 'search[to_id]'?: number;\n 'search[from_name]'?: string;\n 'search[from_id]'?: number;\n 'search[is_read]'?: boolean;\n 'search[is_deleted]'?: boolean;\n 'search[read]'?: boolean;\n };\n url: '/dmails.json';\n};\n\nexport type DmailsIndexResponses = {\n /**\n * Success\n */\n 200: Array<DMail>;\n};\n\nexport type DmailsIndexResponse = DmailsIndexResponses[keyof DmailsIndexResponses];\n\nexport type DmailsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/dmails/{id}.json';\n};\n\nexport type DmailsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type DmailsDestroyError = DmailsDestroyErrors[keyof DmailsDestroyErrors];\n\nexport type DmailsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type DmailsDestroyResponse = DmailsDestroyResponses[keyof DmailsDestroyResponses];\n\nexport type DmailsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n key?: string;\n };\n url: '/dmails/{id}.json';\n};\n\nexport type DmailsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type DmailsShowError = DmailsShowErrors[keyof DmailsShowErrors];\n\nexport type DmailsShowResponses = {\n /**\n * Success\n */\n 200: DMail;\n};\n\nexport type DmailsShowResponse = DmailsShowResponses[keyof DmailsShowResponses];\n\nexport type DmailsMarkAsReadData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/dmails/{id}/mark_as_read.json';\n};\n\nexport type DmailsMarkAsReadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type DmailsMarkAsReadError = DmailsMarkAsReadErrors[keyof DmailsMarkAsReadErrors];\n\nexport type DmailsMarkAsReadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type DmailsMarkAsReadResponse = DmailsMarkAsReadResponses[keyof DmailsMarkAsReadResponses];\n\nexport type DmailsMarkAsUnreadData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/dmails/{id}/mark_as_unread.json';\n};\n\nexport type DmailsMarkAsUnreadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type DmailsMarkAsUnreadError = DmailsMarkAsUnreadErrors[keyof DmailsMarkAsUnreadErrors];\n\nexport type DmailsMarkAsUnreadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type DmailsMarkAsUnreadResponse = DmailsMarkAsUnreadResponses[keyof DmailsMarkAsUnreadResponses];\n\nexport type DmailsMarkAllAsReadData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/dmails/mark_all_as_read.json';\n};\n\nexport type DmailsMarkAllAsReadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type DmailsMarkAllAsReadError = DmailsMarkAllAsReadErrors[keyof DmailsMarkAllAsReadErrors];\n\nexport type DmailsMarkAllAsReadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type DmailsMarkAllAsReadResponse = DmailsMarkAllAsReadResponses[keyof DmailsMarkAllAsReadResponses];\n\nexport type DtextPreviewsCreateData = {\n body?: {\n body: string;\n };\n path?: never;\n query?: never;\n url: '/dtext_preview.json';\n};\n\nexport type DtextPreviewsCreateResponses = {\n /**\n * Success\n */\n 200: DTextResponse;\n};\n\nexport type DtextPreviewsCreateResponse = DtextPreviewsCreateResponses[keyof DtextPreviewsCreateResponses];\n\nexport type EditHistoriesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[body_matches]'?: string;\n 'search[subject_matches]'?: string;\n 'search[versionable_type]'?: 'Blip' | 'Comment' | 'ForumPost';\n 'search[versionable_id]'?: number;\n 'search[editor_id]'?: number;\n 'search[editor_name]'?: string;\n };\n url: '/edit_histories.json';\n};\n\nexport type EditHistoriesIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type EditHistoriesIndexError = EditHistoriesIndexErrors[keyof EditHistoriesIndexErrors];\n\nexport type EditHistoriesIndexResponses = {\n /**\n * Success\n */\n 200: Array<EditHistory>;\n};\n\nexport type EditHistoriesIndexResponse = EditHistoriesIndexResponses[keyof EditHistoriesIndexResponses];\n\nexport type EditHistoriesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n /**\n * The versionable type.\n */\n type: 'Blip' | 'Comment' | 'ForumPost';\n };\n url: '/edit_histories/{id}.json';\n};\n\nexport type EditHistoriesShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type EditHistoriesShowError = EditHistoriesShowErrors[keyof EditHistoriesShowErrors];\n\nexport type EditHistoriesShowResponses = {\n /**\n * Success\n */\n 200: Array<EditHistory>;\n};\n\nexport type EditHistoriesShowResponse = EditHistoriesShowResponses[keyof EditHistoriesShowResponses];\n\nexport type EmailBlacklistsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'reason' | 'domain';\n 'search[domain]'?: string;\n 'search[reason]'?: string;\n };\n url: '/email_blacklists.json';\n};\n\nexport type EmailBlacklistsIndexResponses = {\n /**\n * Success\n */\n 200: Array<EmailBlacklist>;\n};\n\nexport type EmailBlacklistsIndexResponse = EmailBlacklistsIndexResponses[keyof EmailBlacklistsIndexResponses];\n\nexport type EmailBlacklistsCreateData = {\n body?: {\n domain: string;\n reason: string;\n };\n path?: never;\n query?: never;\n url: '/email_blacklists.json';\n};\n\nexport type EmailBlacklistsCreateErrors = {\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type EmailBlacklistsCreateError = EmailBlacklistsCreateErrors[keyof EmailBlacklistsCreateErrors];\n\nexport type EmailBlacklistsCreateResponses = {\n /**\n * Success\n */\n 201: EmailBlacklist;\n};\n\nexport type EmailBlacklistsCreateResponse = EmailBlacklistsCreateResponses[keyof EmailBlacklistsCreateResponses];\n\nexport type EmailBlacklistsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/email_blacklists/{id}.json';\n};\n\nexport type EmailBlacklistsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type EmailBlacklistsDestroyError = EmailBlacklistsDestroyErrors[keyof EmailBlacklistsDestroyErrors];\n\nexport type EmailBlacklistsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type EmailBlacklistsDestroyResponse = EmailBlacklistsDestroyResponses[keyof EmailBlacklistsDestroyResponses];\n\nexport type FavoritesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n };\n url: '/favorites.json';\n};\n\nexport type FavoritesIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type FavoritesIndexError = FavoritesIndexErrors[keyof FavoritesIndexErrors];\n\nexport type FavoritesIndexResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n posts: Array<LegacyPost>;\n } | Array<BasicPost> | Array<ExtendedPost> | Array<ThumbnailPost>;\n};\n\nexport type FavoritesIndexResponse = FavoritesIndexResponses[keyof FavoritesIndexResponses];\n\nexport type FavoritesCreateData = {\n body?: {\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/favorites.json';\n};\n\nexport type FavoritesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type FavoritesCreateError = FavoritesCreateErrors[keyof FavoritesCreateErrors];\n\nexport type FavoritesCreateResponses = {\n /**\n * Success\n */\n 201: {\n post_id: number;\n favorite_count: number;\n };\n};\n\nexport type FavoritesCreateResponse = FavoritesCreateResponses[keyof FavoritesCreateResponses];\n\nexport type FavoritesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/favorites/{id}.json';\n};\n\nexport type FavoritesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type FavoritesDestroyError = FavoritesDestroyErrors[keyof FavoritesDestroyErrors];\n\nexport type FavoritesDestroyResponses = {\n /**\n * Success\n */\n 200: {\n post_id: number;\n favorite_count: number;\n };\n};\n\nexport type FavoritesDestroyResponse = FavoritesDestroyResponses[keyof FavoritesDestroyResponses];\n\nexport type ForumPostsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[topic_id]'?: number;\n 'search[topic_title_matches]'?: string;\n 'search[body_matches]'?: string;\n 'search[topic_category_id]'?: number;\n 'search[is_hidden]'?: boolean;\n };\n url: '/forum_posts.json';\n};\n\nexport type ForumPostsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ForumPost>;\n};\n\nexport type ForumPostsIndexResponse = ForumPostsIndexResponses[keyof ForumPostsIndexResponses];\n\nexport type ForumPostsCreateData = {\n body?: {\n body: string;\n topic_id: number;\n };\n path?: never;\n query?: never;\n url: '/forum_posts.json';\n};\n\nexport type ForumPostsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumPostsCreateError = ForumPostsCreateErrors[keyof ForumPostsCreateErrors];\n\nexport type ForumPostsCreateResponses = {\n /**\n * Success\n */\n 201: ForumPost;\n};\n\nexport type ForumPostsCreateResponse = ForumPostsCreateResponses[keyof ForumPostsCreateResponses];\n\nexport type ForumPostsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}.json';\n};\n\nexport type ForumPostsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumPostsDestroyError = ForumPostsDestroyErrors[keyof ForumPostsDestroyErrors];\n\nexport type ForumPostsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumPostsDestroyResponse = ForumPostsDestroyResponses[keyof ForumPostsDestroyResponses];\n\nexport type ForumPostsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}.json';\n};\n\nexport type ForumPostsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumPostsShowError = ForumPostsShowErrors[keyof ForumPostsShowErrors];\n\nexport type ForumPostsShowResponses = {\n /**\n * Success\n */\n 200: ForumPost;\n};\n\nexport type ForumPostsShowResponse = ForumPostsShowResponses[keyof ForumPostsShowResponses];\n\nexport type ForumPostsUpdateData = {\n body?: {\n body?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}.json';\n};\n\nexport type ForumPostsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumPostsUpdateError = ForumPostsUpdateErrors[keyof ForumPostsUpdateErrors];\n\nexport type ForumPostsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumPostsUpdateResponse = ForumPostsUpdateResponses[keyof ForumPostsUpdateResponses];\n\nexport type ForumPostsHideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/hide.json';\n};\n\nexport type ForumPostsHideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumPostsHideError = ForumPostsHideErrors[keyof ForumPostsHideErrors];\n\nexport type ForumPostsHideResponses = {\n /**\n * Success\n */\n 201: ForumPost;\n};\n\nexport type ForumPostsHideResponse = ForumPostsHideResponses[keyof ForumPostsHideResponses];\n\nexport type ForumPostsUnhideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/unhide.json';\n};\n\nexport type ForumPostsUnhideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumPostsUnhideError = ForumPostsUnhideErrors[keyof ForumPostsUnhideErrors];\n\nexport type ForumPostsUnhideResponses = {\n /**\n * Success\n */\n 201: ForumPost;\n};\n\nexport type ForumPostsUnhideResponse = ForumPostsUnhideResponses[keyof ForumPostsUnhideResponses];\n\nexport type ForumPostsWarningData = {\n body?: Warning;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/warning.json';\n};\n\nexport type ForumPostsWarningErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumPostsWarningError = ForumPostsWarningErrors[keyof ForumPostsWarningErrors];\n\nexport type ForumPostsWarningResponses = {\n /**\n * Success\n */\n 200: DTextResponse;\n};\n\nexport type ForumPostsWarningResponse = ForumPostsWarningResponses[keyof ForumPostsWarningResponses];\n\nexport type ForumPostVotesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/votes.json';\n};\n\nexport type ForumPostVotesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumPostVotesDestroyError = ForumPostVotesDestroyErrors[keyof ForumPostVotesDestroyErrors];\n\nexport type ForumPostVotesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumPostVotesDestroyResponse = ForumPostVotesDestroyResponses[keyof ForumPostVotesDestroyResponses];\n\nexport type ForumPostVotesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/votes.json';\n};\n\nexport type ForumPostVotesShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumPostVotesShowError = ForumPostVotesShowErrors[keyof ForumPostVotesShowErrors];\n\nexport type ForumPostVotesShowResponses = {\n /**\n * Success\n */\n 200: Array<ForumPostVote>;\n};\n\nexport type ForumPostVotesShowResponse = ForumPostVotesShowResponses[keyof ForumPostVotesShowResponses];\n\nexport type ForumPostVotesCreateData = {\n body?: {\n score: UpDownMehVote;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_posts/{id}/votes.json';\n};\n\nexport type ForumPostVotesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumPostVotesCreateError = ForumPostVotesCreateErrors[keyof ForumPostVotesCreateErrors];\n\nexport type ForumPostVotesCreateResponses = {\n /**\n * Success\n */\n 200: ForumPostVote;\n};\n\nexport type ForumPostVotesCreateResponse = ForumPostVotesCreateResponses[keyof ForumPostVotesCreateResponses];\n\nexport type ForumTopicsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'sticky';\n 'search[title]'?: string;\n 'search[title_matches]'?: string;\n 'search[category_id]'?: number;\n 'search[is_sticky]'?: boolean;\n 'search[is_locked]'?: boolean;\n 'search[is_hidden]'?: boolean;\n };\n url: '/forum_topics.json';\n};\n\nexport type ForumTopicsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ForumTopic>;\n};\n\nexport type ForumTopicsIndexResponse = ForumTopicsIndexResponses[keyof ForumTopicsIndexResponses];\n\nexport type ForumTopicsCreateData = {\n body?: {\n title: string;\n category_id: number;\n /**\n * You must be Moderator+.\n */\n is_sticky?: boolean;\n /**\n * You must be Moderator+.\n */\n is_locked?: boolean;\n original_post_attributes: {\n /**\n * Forum post ID. Mutually exclusive with body, one must be provided.\n */\n id?: number;\n /**\n * First forum post body. Mutually exclusive with id, one must be provided.\n */\n body?: string;\n };\n };\n path?: never;\n query?: never;\n url: '/forum_topics.json';\n};\n\nexport type ForumTopicsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumTopicsCreateError = ForumTopicsCreateErrors[keyof ForumTopicsCreateErrors];\n\nexport type ForumTopicsCreateResponses = {\n /**\n * Success\n */\n 201: ForumTopic;\n};\n\nexport type ForumTopicsCreateResponse = ForumTopicsCreateResponses[keyof ForumTopicsCreateResponses];\n\nexport type ForumTopicsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}.json';\n};\n\nexport type ForumTopicsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsDestroyError = ForumTopicsDestroyErrors[keyof ForumTopicsDestroyErrors];\n\nexport type ForumTopicsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumTopicsDestroyResponse = ForumTopicsDestroyResponses[keyof ForumTopicsDestroyResponses];\n\nexport type ForumTopicsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}.json';\n};\n\nexport type ForumTopicsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsShowError = ForumTopicsShowErrors[keyof ForumTopicsShowErrors];\n\nexport type ForumTopicsShowResponses = {\n /**\n * Success\n */\n 200: ForumTopic;\n};\n\nexport type ForumTopicsShowResponse = ForumTopicsShowResponses[keyof ForumTopicsShowResponses];\n\nexport type ForumTopicsUpdateData = {\n body?: {\n title?: string;\n category_id?: number;\n /**\n * You must be Moderator+.\n */\n is_sticky?: boolean;\n /**\n * You must be Moderator+.\n */\n is_locked?: boolean;\n original_post_attributes?: {\n /**\n * Forum post ID. Silently ignored\n */\n id?: number;\n /**\n * First forum post body.\n */\n body?: string;\n };\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}.json';\n};\n\nexport type ForumTopicsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type ForumTopicsUpdateError = ForumTopicsUpdateErrors[keyof ForumTopicsUpdateErrors];\n\nexport type ForumTopicsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumTopicsUpdateResponse = ForumTopicsUpdateResponses[keyof ForumTopicsUpdateResponses];\n\nexport type ForumTopicsHideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}/hide.json';\n};\n\nexport type ForumTopicsHideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsHideError = ForumTopicsHideErrors[keyof ForumTopicsHideErrors];\n\nexport type ForumTopicsHideResponses = {\n /**\n * Success\n */\n 201: ForumTopic;\n};\n\nexport type ForumTopicsHideResponse = ForumTopicsHideResponses[keyof ForumTopicsHideResponses];\n\nexport type ForumTopicsUnhideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}/unhide.json';\n};\n\nexport type ForumTopicsUnhideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsUnhideError = ForumTopicsUnhideErrors[keyof ForumTopicsUnhideErrors];\n\nexport type ForumTopicsUnhideResponses = {\n /**\n * Success\n */\n 201: ForumTopic;\n};\n\nexport type ForumTopicsUnhideResponse = ForumTopicsUnhideResponses[keyof ForumTopicsUnhideResponses];\n\nexport type ForumTopicsSubscribeData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}/subscribe.json';\n};\n\nexport type ForumTopicsSubscribeErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsSubscribeError = ForumTopicsSubscribeErrors[keyof ForumTopicsSubscribeErrors];\n\nexport type ForumTopicsSubscribeResponses = {\n /**\n * Success\n */\n 201: ForumTopic;\n};\n\nexport type ForumTopicsSubscribeResponse = ForumTopicsSubscribeResponses[keyof ForumTopicsSubscribeResponses];\n\nexport type ForumTopicsUnsubscribeData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/forum_topics/{id}/unsubscribe.json';\n};\n\nexport type ForumTopicsUnsubscribeErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ForumTopicsUnsubscribeError = ForumTopicsUnsubscribeErrors[keyof ForumTopicsUnsubscribeErrors];\n\nexport type ForumTopicsUnsubscribeResponses = {\n /**\n * Success\n */\n 201: ForumTopic;\n};\n\nexport type ForumTopicsUnsubscribeResponse = ForumTopicsUnsubscribeResponses[keyof ForumTopicsUnsubscribeResponses];\n\nexport type ForumTopicsMarkAllAsReadData = {\n body?: {\n category_id: number;\n };\n path?: never;\n query?: never;\n url: '/forum_topics/mark_all_as_read.json';\n};\n\nexport type ForumTopicsMarkAllAsReadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type ForumTopicsMarkAllAsReadError = ForumTopicsMarkAllAsReadErrors[keyof ForumTopicsMarkAllAsReadErrors];\n\nexport type ForumTopicsMarkAllAsReadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type ForumTopicsMarkAllAsReadResponse = ForumTopicsMarkAllAsReadResponses[keyof ForumTopicsMarkAllAsReadResponses];\n\nexport type HelpIndexData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/help.json';\n};\n\nexport type HelpIndexErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type HelpIndexError = HelpIndexErrors[keyof HelpIndexErrors];\n\nexport type HelpIndexResponses = {\n /**\n * Success\n */\n 200: HelpPage;\n};\n\nexport type HelpIndexResponse = HelpIndexResponses[keyof HelpIndexResponses];\n\nexport type HelpCreateData = {\n body?: {\n name: string;\n wiki_page: string;\n /**\n * Separate with a comma followed by a space.\n */\n related?: string;\n title?: string;\n };\n path?: never;\n query?: never;\n url: '/help.json';\n};\n\nexport type HelpCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type HelpCreateError = HelpCreateErrors[keyof HelpCreateErrors];\n\nexport type HelpCreateResponses = {\n /**\n * Success\n */\n 201: HelpPage;\n};\n\nexport type HelpCreateResponse = HelpCreateResponses[keyof HelpCreateResponses];\n\nexport type HelpListData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/help/list.json';\n};\n\nexport type HelpListResponses = {\n /**\n * Success\n */\n 200: Array<HelpPage>;\n};\n\nexport type HelpListResponse = HelpListResponses[keyof HelpListResponses];\n\nexport type HelpDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/help/{id}.json';\n};\n\nexport type HelpDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type HelpDestroyError = HelpDestroyErrors[keyof HelpDestroyErrors];\n\nexport type HelpDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type HelpDestroyResponse = HelpDestroyResponses[keyof HelpDestroyResponses];\n\nexport type HelpShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n id: number | string;\n };\n query?: never;\n url: '/help/{id}.json';\n};\n\nexport type HelpShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type HelpShowError = HelpShowErrors[keyof HelpShowErrors];\n\nexport type HelpShowResponses = {\n /**\n * Success\n */\n 200: HelpPage;\n};\n\nexport type HelpShowResponse = HelpShowResponses[keyof HelpShowResponses];\n\nexport type HelpUpdateData = {\n body?: {\n name?: string;\n wiki_page?: string;\n /**\n * Separate with a comma followed by a space.\n */\n related?: string;\n title?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/help/{id}.json';\n};\n\nexport type HelpUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type HelpUpdateError = HelpUpdateErrors[keyof HelpUpdateErrors];\n\nexport type HelpUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type HelpUpdateResponse = HelpUpdateResponses[keyof HelpUpdateResponses];\n\nexport type IpBansIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[banner_id]'?: number;\n 'search[banner_name]'?: string;\n 'search[reason]'?: string;\n };\n url: '/ip_bans.json';\n};\n\nexport type IpBansIndexResponses = {\n /**\n * Success\n */\n 200: Array<IpBan>;\n};\n\nexport type IpBansIndexResponse = IpBansIndexResponses[keyof IpBansIndexResponses];\n\nexport type IpBansCreateData = {\n body?: {\n ip_addr: string;\n reason: string;\n };\n path?: never;\n query?: never;\n url: '/ip_bans.json';\n};\n\nexport type IpBansCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type IpBansCreateError = IpBansCreateErrors[keyof IpBansCreateErrors];\n\nexport type IpBansCreateResponses = {\n /**\n * Success\n */\n 201: IpBan;\n};\n\nexport type IpBansCreateResponse = IpBansCreateResponses[keyof IpBansCreateResponses];\n\nexport type IpBansDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/ip_bans/{id}.json';\n};\n\nexport type IpBansDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type IpBansDestroyError = IpBansDestroyErrors[keyof IpBansDestroyErrors];\n\nexport type IpBansDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type IpBansDestroyResponse = IpBansDestroyResponses[keyof IpBansDestroyResponses];\n\nexport type IqdbQueriesShowData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n 'search[score_cutoff]'?: number;\n 'search[url]'?: string;\n 'search[post_id]'?: number;\n 'search[hash]'?: string;\n };\n url: '/iqdb_queries.json';\n};\n\nexport type IqdbQueriesShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type IqdbQueriesShowError = IqdbQueriesShowErrors[keyof IqdbQueriesShowErrors];\n\nexport type IqdbQueriesShowResponses = {\n /**\n * Success\n */\n 200: Array<IqdbResponse> | Array<{\n hash: string;\n post_id: number;\n score: number;\n post: BasicPost;\n }>;\n};\n\nexport type IqdbQueriesShowResponse = IqdbQueriesShowResponses[keyof IqdbQueriesShowResponses];\n\nexport type IqdbQueriesShowPostData = {\n body?: {\n score_cutoff?: number;\n url?: string;\n post_id?: string;\n hash?: string;\n };\n path?: never;\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n };\n url: '/iqdb_queries.json';\n};\n\nexport type IqdbQueriesShowPostErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type IqdbQueriesShowPostError = IqdbQueriesShowPostErrors[keyof IqdbQueriesShowPostErrors];\n\nexport type IqdbQueriesShowPostResponses = {\n /**\n * Success\n */\n 200: Array<IqdbResponse> | Array<{\n hash: string;\n post_id: number;\n score: number;\n post: BasicPost;\n }>;\n};\n\nexport type IqdbQueriesShowPostResponse = IqdbQueriesShowPostResponses[keyof IqdbQueriesShowPostResponses];\n\nexport type MascotsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n };\n url: '/mascots.json';\n};\n\nexport type MascotsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Mascot>;\n};\n\nexport type MascotsIndexResponse = MascotsIndexResponses[keyof MascotsIndexResponses];\n\nexport type MascotsCreateData = {\n body?: {\n 'mascot[mascot_file]': Blob | File;\n 'mascot[display_name]': string;\n 'mascot[background_color]': string;\n 'mascot[artist_url]': string;\n 'mascot[artist_name]': string;\n /**\n * Comma separated site names.\n */\n 'mascot[available_on_string]'?: string;\n 'mascot[active]'?: boolean;\n 'mascot[hide_anonymous]'?: boolean;\n };\n path?: never;\n query?: never;\n url: '/mascots.json';\n};\n\nexport type MascotsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type MascotsCreateError = MascotsCreateErrors[keyof MascotsCreateErrors];\n\nexport type MascotsCreateResponses = {\n /**\n * Success\n */\n 201: Mascot;\n};\n\nexport type MascotsCreateResponse = MascotsCreateResponses[keyof MascotsCreateResponses];\n\nexport type MascotsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/mascots/{id}.json';\n};\n\nexport type MascotsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type MascotsDestroyError = MascotsDestroyErrors[keyof MascotsDestroyErrors];\n\nexport type MascotsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type MascotsDestroyResponse = MascotsDestroyResponses[keyof MascotsDestroyResponses];\n\nexport type MascotsUpdateData = {\n body?: {\n 'mascot[mascot_file]'?: Blob | File;\n 'mascot[display_name]'?: string;\n 'mascot[background_color]'?: string;\n 'mascot[artist_url]'?: string;\n 'mascot[artist_name]'?: string;\n /**\n * Comma separated site names.\n */\n 'mascot[available_on_string]'?: string;\n 'mascot[active]'?: boolean;\n 'mascot[hide_anonymous]'?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/mascots/{id}.json';\n};\n\nexport type MascotsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type MascotsUpdateError = MascotsUpdateErrors[keyof MascotsUpdateErrors];\n\nexport type MascotsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type MascotsUpdateResponse = MascotsUpdateResponses[keyof MascotsUpdateResponses];\n\nexport type ModActionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[action]'?: ModActionActions;\n };\n url: '/mod_actions.json';\n};\n\nexport type ModActionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ModAction>;\n};\n\nexport type ModActionsIndexResponse = ModActionsIndexResponses[keyof ModActionsIndexResponses];\n\nexport type ModActionsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/mod_actions/{id}.json';\n};\n\nexport type ModActionsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type ModActionsShowError = ModActionsShowErrors[keyof ModActionsShowErrors];\n\nexport type ModActionsShowResponses = {\n /**\n * Success\n */\n 200: ModAction;\n};\n\nexport type ModActionsShowResponse = ModActionsShowResponses[keyof ModActionsShowResponses];\n\nexport type NewsUpdatesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/news_updates.json';\n};\n\nexport type NewsUpdatesIndexResponses = {\n /**\n * Success\n */\n 200: Array<NewsUpdate>;\n};\n\nexport type NewsUpdatesIndexResponse = NewsUpdatesIndexResponses[keyof NewsUpdatesIndexResponses];\n\nexport type NewsUpdatesCreateData = {\n body?: {\n message: string;\n };\n path?: never;\n query?: never;\n url: '/news_updates.json';\n};\n\nexport type NewsUpdatesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type NewsUpdatesCreateError = NewsUpdatesCreateErrors[keyof NewsUpdatesCreateErrors];\n\nexport type NewsUpdatesCreateResponses = {\n /**\n * Success\n */\n 201: NewsUpdate;\n};\n\nexport type NewsUpdatesCreateResponse = NewsUpdatesCreateResponses[keyof NewsUpdatesCreateResponses];\n\nexport type NewsUpdatesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/news_updates/{id}.json';\n};\n\nexport type NewsUpdatesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type NewsUpdatesDestroyError = NewsUpdatesDestroyErrors[keyof NewsUpdatesDestroyErrors];\n\nexport type NewsUpdatesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type NewsUpdatesDestroyResponse = NewsUpdatesDestroyResponses[keyof NewsUpdatesDestroyResponses];\n\nexport type NewsUpdatesUpdateData = {\n body?: {\n message: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/news_updates/{id}.json';\n};\n\nexport type NewsUpdatesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type NewsUpdatesUpdateError = NewsUpdatesUpdateErrors[keyof NewsUpdatesUpdateErrors];\n\nexport type NewsUpdatesUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type NewsUpdatesUpdateResponse = NewsUpdatesUpdateResponses[keyof NewsUpdatesUpdateResponses];\n\nexport type NotesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[body_matches]'?: string;\n 'search[is_active]'?: boolean;\n 'search[post_id]'?: number;\n 'search[post_tags_match]'?: string;\n 'search[post_note_updater_id]'?: number;\n 'search[post_note_updater_name]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n };\n url: '/notes.json';\n};\n\nexport type NotesIndexResponses = {\n /**\n * Success\n */\n 200: Array<Note>;\n};\n\nexport type NotesIndexResponse = NotesIndexResponses[keyof NotesIndexResponses];\n\nexport type NotesCreateData = {\n body?: {\n post_id: number;\n x: number;\n y: number;\n width: number;\n height: number;\n body: string;\n /**\n * Passthrough, used in frontend.\n */\n html_id?: string;\n };\n path?: never;\n query?: never;\n url: '/notes.json';\n};\n\nexport type NotesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type NotesCreateError = NotesCreateErrors[keyof NotesCreateErrors];\n\nexport type NotesCreateResponses = {\n /**\n * Success\n */\n 201: Note & {\n /**\n * Passthrough, used in frontend.\n */\n html_id: string;\n };\n};\n\nexport type NotesCreateResponse = NotesCreateResponses[keyof NotesCreateResponses];\n\nexport type NotesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/notes/{id}.json';\n};\n\nexport type NotesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type NotesDestroyError = NotesDestroyErrors[keyof NotesDestroyErrors];\n\nexport type NotesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type NotesDestroyResponse = NotesDestroyResponses[keyof NotesDestroyResponses];\n\nexport type NotesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/notes/{id}.json';\n};\n\nexport type NotesShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type NotesShowError = NotesShowErrors[keyof NotesShowErrors];\n\nexport type NotesShowResponses = {\n /**\n * Success\n */\n 200: Note;\n};\n\nexport type NotesShowResponse = NotesShowResponses[keyof NotesShowResponses];\n\nexport type NotesUpdateData = {\n body?: {\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n body?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/notes/{id}.json';\n};\n\nexport type NotesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type NotesUpdateError = NotesUpdateErrors[keyof NotesUpdateErrors];\n\nexport type NotesUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type NotesUpdateResponse = NotesUpdateResponses[keyof NotesUpdateResponses];\n\nexport type NotesRevertData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n /**\n * The version ID to revert to.\n */\n version_id: number;\n };\n url: '/notes/{id}/revert.json';\n};\n\nexport type NotesRevertErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type NotesRevertError = NotesRevertErrors[keyof NotesRevertErrors];\n\nexport type NotesRevertResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type NotesRevertResponse = NotesRevertResponses[keyof NotesRevertResponses];\n\nexport type NoteVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[updater_id]'?: number;\n 'search[updater_name]'?: string;\n 'search[post_id]'?: number;\n 'search[note_id]'?: number;\n 'search[is_active]'?: boolean;\n 'search[body_matches]'?: string;\n };\n url: '/note_versions.json';\n};\n\nexport type NoteVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<NoteVersion>;\n};\n\nexport type NoteVersionsIndexResponse = NoteVersionsIndexResponses[keyof NoteVersionsIndexResponses];\n\nexport type PoolsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'name' | 'created_at' | 'post_count';\n 'search[name_matches]'?: string;\n 'search[description_matches]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[category]'?: PoolCategories;\n 'search[is_active]'?: boolean;\n };\n url: '/pools.json';\n};\n\nexport type PoolsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Pool>;\n};\n\nexport type PoolsIndexResponse = PoolsIndexResponses[keyof PoolsIndexResponses];\n\nexport type PoolsCreateData = {\n body?: {\n name: string;\n description?: string;\n category?: PoolCategories;\n is_active?: boolean;\n /**\n * Space separated list of post IDs. Mutually exclusive with post_ids.\n */\n post_ids_string?: string;\n /**\n * Array of post IDs. Mutually exclusive with post_ids_string.\n */\n post_ids?: Array<number>;\n };\n path?: never;\n query?: never;\n url: '/pools.json';\n};\n\nexport type PoolsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PoolsCreateError = PoolsCreateErrors[keyof PoolsCreateErrors];\n\nexport type PoolsCreateResponses = {\n /**\n * Success\n */\n 201: Pool;\n};\n\nexport type PoolsCreateResponse = PoolsCreateResponses[keyof PoolsCreateResponses];\n\nexport type PoolsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/pools/{id}.json';\n};\n\nexport type PoolsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PoolsDestroyError = PoolsDestroyErrors[keyof PoolsDestroyErrors];\n\nexport type PoolsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PoolsDestroyResponse = PoolsDestroyResponses[keyof PoolsDestroyResponses];\n\nexport type PoolsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/pools/{id}.json';\n};\n\nexport type PoolsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PoolsShowError = PoolsShowErrors[keyof PoolsShowErrors];\n\nexport type PoolsShowResponses = {\n /**\n * Success\n */\n 200: Pool;\n};\n\nexport type PoolsShowResponse = PoolsShowResponses[keyof PoolsShowResponses];\n\nexport type PoolsUpdateData = {\n body?: {\n name?: string;\n description?: string;\n is_active?: boolean;\n category?: PoolCategories;\n /**\n * Space separated list of post IDs. Mutually exclusive with post_ids.\n */\n post_ids_string?: string;\n /**\n * Array of post IDs. Mutually exclusive with post_ids_string.\n */\n post_ids?: Array<number>;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/pools/{id}.json';\n};\n\nexport type PoolsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PoolsUpdateError = PoolsUpdateErrors[keyof PoolsUpdateErrors];\n\nexport type PoolsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PoolsUpdateResponse = PoolsUpdateResponses[keyof PoolsUpdateResponses];\n\nexport type PoolsRevertData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n /**\n * The version ID to revert to.\n */\n version_id: number;\n };\n url: '/pools/{id}/revert.json';\n};\n\nexport type PoolsRevertErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PoolsRevertError = PoolsRevertErrors[keyof PoolsRevertErrors];\n\nexport type PoolsRevertResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PoolsRevertResponse = PoolsRevertResponses[keyof PoolsRevertResponses];\n\nexport type PoolElementsDestroyData = {\n body?: {\n /**\n * Mutually exclusive with pool_name.\n */\n pool_id?: number;\n /**\n * Mutually exclusive with pool_id. The value is not normalized.\n */\n pool_name?: string;\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/pool_element.json';\n};\n\nexport type PoolElementsDestroyErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PoolElementsDestroyError = PoolElementsDestroyErrors[keyof PoolElementsDestroyErrors];\n\nexport type PoolElementsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PoolElementsDestroyResponse = PoolElementsDestroyResponses[keyof PoolElementsDestroyResponses];\n\nexport type PoolElementsCreateData = {\n body?: {\n /**\n * Mutually exclusive with pool_name.\n */\n pool_id?: number;\n /**\n * Mutually exclusive with pool_id.\n */\n pool_name?: string;\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/pool_element.json';\n};\n\nexport type PoolElementsCreateErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PoolElementsCreateError = PoolElementsCreateErrors[keyof PoolElementsCreateErrors];\n\nexport type PoolElementsCreateResponses = {\n /**\n * Success\n */\n 201: Pool;\n};\n\nexport type PoolElementsCreateResponse = PoolElementsCreateResponses[keyof PoolElementsCreateResponses];\n\nexport type PoolElementsRecentData = {\n body?: {\n /**\n * Mutually exclusive with pool_name.\n */\n pool_id?: number;\n /**\n * Mutually exclusive with pool_id. The value is not normalized.\n */\n pool_name?: string;\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/pool_element/recent.json';\n};\n\nexport type PoolElementsRecentResponses = {\n /**\n * Success\n */\n 200: Array<{\n id: string;\n name: string;\n }>;\n};\n\nexport type PoolElementsRecentResponse = PoolElementsRecentResponses[keyof PoolElementsRecentResponses];\n\nexport type PoolVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[updater_id]'?: number;\n 'search[updater_name]'?: string;\n 'search[pool_id]'?: number;\n };\n url: '/pool_versions.json';\n};\n\nexport type PoolVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PoolVersion>;\n};\n\nexport type PoolVersionsIndexResponse = PoolVersionsIndexResponses[keyof PoolVersionsIndexResponses];\n\nexport type PopularIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n /**\n * The date to list popular uploads for. Only The day, month, and year are considered.\n */\n date?: string;\n /**\n * The scale of the results, in relation to `date`.\n */\n scale?: 'month' | 'week' | 'day';\n };\n url: '/popular.json';\n};\n\nexport type PopularIndexErrors = {\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PopularIndexError = PopularIndexErrors[keyof PopularIndexErrors];\n\nexport type PopularIndexResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n posts: Array<LegacyPost>;\n } | Array<BasicPost> | Array<ExtendedPost> | Array<ThumbnailPost>;\n};\n\nexport type PopularIndexResponse = PopularIndexResponses[keyof PopularIndexResponses];\n\nexport type PostsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n tags?: string;\n md5?: string;\n random?: string;\n };\n url: '/posts.json';\n};\n\nexport type PostsIndexResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n posts: Array<LegacyPost>;\n } | Array<BasicPost> | Array<ExtendedPost> | Array<ThumbnailPost> | {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsIndexResponse = PostsIndexResponses[keyof PostsIndexResponses];\n\nexport type PostsRandomData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n tags?: string;\n };\n url: '/posts/random.json';\n};\n\nexport type PostsRandomErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostsRandomError = PostsRandomErrors[keyof PostsRandomErrors];\n\nexport type PostsRandomResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsRandomResponse = PostsRandomResponses[keyof PostsRandomResponses];\n\nexport type PostsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n };\n url: '/posts/{id}.json';\n};\n\nexport type PostsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostsShowError = PostsShowErrors[keyof PostsShowErrors];\n\nexport type PostsShowResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsShowResponse = PostsShowResponses[keyof PostsShowResponses];\n\nexport type PostsUpdateData = {\n body?: {\n /**\n * Replaces all tags on the post.\n */\n tag_string?: string;\n /**\n * The tag string before your edits, used to reconcile conflicts.\n */\n old_tag_string?: string;\n /**\n * Tags with a minus are removed, else they are added. Mutually exclusive with tag_string.\n */\n tag_string_diff?: string;\n /**\n * Sources with a minus are removed, else they are added. It is not possible to add inactive sources through this. Mutually exclusive with source.\n */\n source_diff?: string;\n /**\n * Replaces all sources on the post.\n */\n source?: string;\n /**\n * The sources before your edits, used to reconcile conflicts.\n */\n old_source?: string;\n parent_id?: number;\n old_parent_id?: number;\n description?: string;\n old_description?: string;\n rating?: Ratings;\n old_rating?: Ratings;\n edit_reason?: string;\n /**\n * You must be Privileged+.\n */\n is_rating_locked?: boolean;\n /**\n * You must be Staff+.\n */\n is_note_locked?: boolean;\n /**\n * You must be Staff+.\n */\n bg_color?: string;\n /**\n * You must be Moderator+.\n */\n is_comment_locked?: boolean;\n /**\n * You must be Admin+.\n */\n is_comment_disabled?: boolean;\n /**\n * You must be Admin+.\n */\n is_status_locked?: boolean;\n /**\n * You must be Admin+.\n */\n locked_tags?: string;\n /**\n * You must be Admin+.\n */\n hide_from_anonymous?: boolean;\n /**\n * You must be Admin+.\n */\n hide_from_search_engines?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n };\n url: '/posts/{id}.json';\n};\n\nexport type PostsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostsUpdateError = PostsUpdateErrors[keyof PostsUpdateErrors];\n\nexport type PostsUpdateResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsUpdateResponse = PostsUpdateResponses[keyof PostsUpdateResponses];\n\nexport type PostsUpdateIqdbData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n };\n url: '/posts/{id}/update_iqdb.json';\n};\n\nexport type PostsUpdateIqdbErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostsUpdateIqdbError = PostsUpdateIqdbErrors[keyof PostsUpdateIqdbErrors];\n\nexport type PostsUpdateIqdbResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsUpdateIqdbResponse = PostsUpdateIqdbResponses[keyof PostsUpdateIqdbResponses];\n\nexport type PostsMarkAsTranslatedData = {\n body?: {\n translation_check?: boolean;\n partially_translated?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n };\n url: '/posts/{id}/mark_as_translated.json';\n};\n\nexport type PostsMarkAsTranslatedErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostsMarkAsTranslatedError = PostsMarkAsTranslatedErrors[keyof PostsMarkAsTranslatedErrors];\n\nexport type PostsMarkAsTranslatedResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsMarkAsTranslatedResponse = PostsMarkAsTranslatedResponses[keyof PostsMarkAsTranslatedResponses];\n\nexport type PostsCopyNotesData = {\n body?: {\n other_post_id: number;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/posts/{id}/copy_notes.json';\n};\n\nexport type PostsCopyNotesErrors = {\n /**\n * Error\n */\n 400: MessageErrorResponse;\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostsCopyNotesError = PostsCopyNotesErrors[keyof PostsCopyNotesErrors];\n\nexport type PostsCopyNotesResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostsCopyNotesResponse = PostsCopyNotesResponses[keyof PostsCopyNotesResponses];\n\nexport type PostsRevertData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n /**\n * The version ID to revert to.\n */\n version_id: number;\n };\n url: '/posts/{id}/revert.json';\n};\n\nexport type PostsRevertErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostsRevertError = PostsRevertErrors[keyof PostsRevertErrors];\n\nexport type PostsRevertResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostsRevertResponse = PostsRevertResponses[keyof PostsRevertResponses];\n\nexport type PostsShowSeqData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n /**\n * Set the mode for the V2 format. Ignored if `v2` is not set or false. See the `v2=true` responses.\n */\n mode?: 'basic' | 'extended' | 'thumbnail';\n /**\n * The direction to move in the sequence.\n */\n seq?: 'next' | 'prev';\n };\n url: '/posts/{id}/show_seq.json';\n};\n\nexport type PostsShowSeqErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostsShowSeqError = PostsShowSeqErrors[keyof PostsShowSeqErrors];\n\nexport type PostsShowSeqResponses = {\n /**\n * Success\n * if `v2=true`, open the schema and find the schema for the mode being used.\n *\n */\n 200: {\n post: LegacyPost;\n } | (BasicPost & unknown) | (ExtendedPost & unknown) | (ThumbnailPost & unknown);\n};\n\nexport type PostsShowSeqResponse = PostsShowSeqResponses[keyof PostsShowSeqResponses];\n\nexport type PostFlagsDestroyData = {\n body?: {\n /**\n * Approves the post if set to \"approve\".\n */\n approval?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/posts/{id}/flag.json';\n};\n\nexport type PostFlagsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostFlagsDestroyError = PostFlagsDestroyErrors[keyof PostFlagsDestroyErrors];\n\nexport type PostFlagsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostFlagsDestroyResponse = PostFlagsDestroyResponses[keyof PostFlagsDestroyResponses];\n\nexport type PostFavoritesIndexData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * The maximum number of results to return. Between 1 and 100.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/posts/{id}/favorites.json';\n};\n\nexport type PostFavoritesIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostFavoritesIndexError = PostFavoritesIndexErrors[keyof PostFavoritesIndexErrors];\n\nexport type PostFavoritesIndexResponses = {\n /**\n * Success\n */\n 200: Array<MinimalUser>;\n};\n\nexport type PostFavoritesIndexResponse = PostFavoritesIndexResponses[keyof PostFavoritesIndexResponses];\n\nexport type PostVotesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/posts/{id}/votes.json';\n};\n\nexport type PostVotesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostVotesDestroyError = PostVotesDestroyErrors[keyof PostVotesDestroyErrors];\n\nexport type PostVotesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostVotesDestroyResponse = PostVotesDestroyResponses[keyof PostVotesDestroyResponses];\n\nexport type PostVotesCreateData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n score: UpDownVote;\n no_unvote?: boolean;\n };\n url: '/posts/{id}/votes.json';\n};\n\nexport type PostVotesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostVotesCreateError = PostVotesCreateErrors[keyof PostVotesCreateErrors];\n\nexport type PostVotesCreateResponses = {\n /**\n * Success\n */\n 200: {\n score: number;\n up: number;\n down: number;\n our_score: number;\n };\n};\n\nexport type PostVotesCreateResponse = PostVotesCreateResponses[keyof PostVotesCreateResponses];\n\nexport type PostRecommendationsArtistData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/posts/{id}/similar/artist.json';\n};\n\nexport type PostRecommendationsArtistErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostRecommendationsArtistError = PostRecommendationsArtistErrors[keyof PostRecommendationsArtistErrors];\n\nexport type PostRecommendationsArtistResponses = {\n /**\n * Success\n */\n 200: RecommendedPosts & PostData;\n};\n\nexport type PostRecommendationsArtistResponse = PostRecommendationsArtistResponses[keyof PostRecommendationsArtistResponses];\n\nexport type PostRecommendationsTagsData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/posts/{id}/similar/tags.json';\n};\n\nexport type PostRecommendationsTagsErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostRecommendationsTagsError = PostRecommendationsTagsErrors[keyof PostRecommendationsTagsErrors];\n\nexport type PostRecommendationsTagsResponses = {\n /**\n * Success\n */\n 200: RecommendedPosts & PostData;\n};\n\nexport type PostRecommendationsTagsResponse = PostRecommendationsTagsResponses[keyof PostRecommendationsTagsResponses];\n\nexport type PostSetsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'name' | 'shortname' | 'post_count' | 'postcount' | 'created_at' | 'updated_at' | 'update';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[name]'?: string;\n 'search[shortname]'?: string;\n /**\n * You must be Moderator+.\n */\n 'search[is_public]'?: boolean;\n 'search[post_id]'?: number;\n 'search[maintainer_id]'?: number;\n };\n url: '/post_sets.json';\n};\n\nexport type PostSetsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostSet>;\n};\n\nexport type PostSetsIndexResponse = PostSetsIndexResponses[keyof PostSetsIndexResponses];\n\nexport type PostSetsCreateData = {\n body?: {\n name: string;\n shortname: string;\n description?: string;\n is_public?: boolean;\n ransfer_on_delete?: boolean;\n };\n path?: never;\n query?: never;\n url: '/post_sets.json';\n};\n\nexport type PostSetsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsCreateError = PostSetsCreateErrors[keyof PostSetsCreateErrors];\n\nexport type PostSetsCreateResponses = {\n /**\n * Success\n */\n 201: PostSet;\n};\n\nexport type PostSetsCreateResponse = PostSetsCreateResponses[keyof PostSetsCreateResponses];\n\nexport type PostSetsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}.json';\n};\n\nexport type PostSetsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostSetsDestroyError = PostSetsDestroyErrors[keyof PostSetsDestroyErrors];\n\nexport type PostSetsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostSetsDestroyResponse = PostSetsDestroyResponses[keyof PostSetsDestroyResponses];\n\nexport type PostSetsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}.json';\n};\n\nexport type PostSetsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostSetsShowError = PostSetsShowErrors[keyof PostSetsShowErrors];\n\nexport type PostSetsShowResponses = {\n /**\n * Success\n */\n 200: PostSet;\n};\n\nexport type PostSetsShowResponse = PostSetsShowResponses[keyof PostSetsShowResponses];\n\nexport type PostSetsUpdateData = {\n body?: {\n name?: string;\n shortname?: string;\n description?: string;\n is_public?: boolean;\n transfer_on_delete?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}.json';\n};\n\nexport type PostSetsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsUpdateError = PostSetsUpdateErrors[keyof PostSetsUpdateErrors];\n\nexport type PostSetsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostSetsUpdateResponse = PostSetsUpdateResponses[keyof PostSetsUpdateResponses];\n\nexport type PostSetsUpdatePostsData = {\n body?: {\n post_ids_string: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}/update_posts.json';\n};\n\nexport type PostSetsUpdatePostsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsUpdatePostsError = PostSetsUpdatePostsErrors[keyof PostSetsUpdatePostsErrors];\n\nexport type PostSetsUpdatePostsResponses = {\n /**\n * Success\n */\n 200: PostSet;\n};\n\nexport type PostSetsUpdatePostsResponse = PostSetsUpdatePostsResponses[keyof PostSetsUpdatePostsResponses];\n\nexport type PostSetsAddPostsData = {\n body?: {\n /**\n * post_ids[]=1&post_ids[]=2\n */\n post_ids: Array<number>;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}/add_posts.json';\n};\n\nexport type PostSetsAddPostsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsAddPostsError = PostSetsAddPostsErrors[keyof PostSetsAddPostsErrors];\n\nexport type PostSetsAddPostsResponses = {\n /**\n * Success\n */\n 201: PostSet;\n};\n\nexport type PostSetsAddPostsResponse = PostSetsAddPostsResponses[keyof PostSetsAddPostsResponses];\n\nexport type PostSetsRemovePostsData = {\n body?: {\n /**\n * post_ids[]=1&post_ids[]=2\n */\n post_ids: Array<number>;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_sets/{id}/remove_posts.json';\n};\n\nexport type PostSetsRemovePostsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsRemovePostsError = PostSetsRemovePostsErrors[keyof PostSetsRemovePostsErrors];\n\nexport type PostSetsRemovePostsResponses = {\n /**\n * Success\n */\n 201: PostSet;\n};\n\nexport type PostSetsRemovePostsResponse = PostSetsRemovePostsResponses[keyof PostSetsRemovePostsResponses];\n\nexport type PostSetsForSelectData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/post_sets/for_select.json';\n};\n\nexport type PostSetsForSelectErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostSetsForSelectError = PostSetsForSelectErrors[keyof PostSetsForSelectErrors];\n\nexport type PostSetsForSelectResponses = {\n /**\n * Success\n */\n 200: {\n Owned?: Array<string | number>;\n Maintained?: Array<string | number>;\n };\n};\n\nexport type PostSetsForSelectResponse = PostSetsForSelectResponses[keyof PostSetsForSelectResponses];\n\nexport type PostApprovalsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[post_tags_match]'?: string;\n 'search[user_id]'?: number;\n 'search[user_name]'?: string;\n 'search[post_id]'?: number;\n };\n url: '/post_approvals.json';\n};\n\nexport type PostApprovalsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostApproval>;\n};\n\nexport type PostApprovalsIndexResponse = PostApprovalsIndexResponses[keyof PostApprovalsIndexResponses];\n\nexport type PostEventsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n /**\n * Use the new V2 format. See the `v2=true` responses.\n */\n v2?: boolean;\n 'search[post_id]'?: number;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[action]'?: PostEventActions;\n };\n url: '/post_events.json';\n};\n\nexport type PostEventsIndexResponses = {\n /**\n * Success\n */\n 200: {\n post_events: Array<PostEvent>;\n } | Array<PostEvent>;\n};\n\nexport type PostEventsIndexResponse = PostEventsIndexResponses[keyof PostEventsIndexResponses];\n\nexport type PostFlagsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[reason_matches]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[post_id]'?: number;\n 'search[post_tags_match]'?: string;\n 'search[type]'?: string;\n 'search[is_resolved]'?: boolean;\n };\n url: '/post_flags.json';\n};\n\nexport type PostFlagsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostFlag>;\n};\n\nexport type PostFlagsIndexResponse = PostFlagsIndexResponses[keyof PostFlagsIndexResponses];\n\nexport type PostFlagsCreateData = {\n body?: {\n post_id: number;\n reason_name: 'uploading_guidelines' | 'young_human' | 'dnp_artist' | 'pay_content' | 'trace' | 'previously_deleted' | 'real_porn' | 'corrupt' | 'inferior';\n parent_id?: number;\n note?: string;\n };\n path?: never;\n query?: never;\n url: '/post_flags.json';\n};\n\nexport type PostFlagsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostFlagsCreateError = PostFlagsCreateErrors[keyof PostFlagsCreateErrors];\n\nexport type PostFlagsCreateResponses = {\n /**\n * Success\n */\n 201: PostFlag;\n};\n\nexport type PostFlagsCreateResponse = PostFlagsCreateResponses[keyof PostFlagsCreateResponses];\n\nexport type PostFlagsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_flags/{id}.json';\n};\n\nexport type PostFlagsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostFlagsShowError = PostFlagsShowErrors[keyof PostFlagsShowErrors];\n\nexport type PostFlagsShowResponses = {\n /**\n * Success\n */\n 200: PostFlag;\n};\n\nexport type PostFlagsShowResponse = PostFlagsShowResponses[keyof PostFlagsShowResponses];\n\nexport type PostFlagsClearNoteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_flags/{id}/clear_note.json';\n};\n\nexport type PostFlagsClearNoteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostFlagsClearNoteError = PostFlagsClearNoteErrors[keyof PostFlagsClearNoteErrors];\n\nexport type PostFlagsClearNoteResponses = {\n /**\n * Success\n */\n 201: PostFlag;\n};\n\nexport type PostFlagsClearNoteResponse = PostFlagsClearNoteResponses[keyof PostFlagsClearNoteResponses];\n\nexport type PostReplacementsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[file_ext]'?: string;\n 'search[md5]'?: string;\n 'search[status]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[approver_id]'?: number;\n 'search[approver_name]'?: string;\n 'search[uploader_name_on_approve]'?: string;\n 'search[uploader_id_on_approve]'?: number;\n /**\n * Allows a comma separated list of up to 100 post IDs.\n *\n */\n 'search[post_id]'?: string;\n 'search[reason]'?: string;\n 'search[penalized]'?: boolean;\n 'search[source]'?: string;\n 'search[file_name]'?: string;\n };\n url: '/post_replacements.json';\n};\n\nexport type PostReplacementsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostReplacement>;\n};\n\nexport type PostReplacementsIndexResponse = PostReplacementsIndexResponses[keyof PostReplacementsIndexResponses];\n\nexport type PostReplacementsCreateData = {\n body?: {\n /**\n * Mutually exclusive with replacement_url.\n */\n 'post_replacement[replacement_file]'?: Blob | File;\n /**\n * Mutually exclusive with replacement_file.\n */\n 'post_replacement[replacement_url]'?: string;\n 'post_replacement[reason]': string;\n 'post_replacement[source]'?: string;\n /**\n * You must be Approver\n */\n 'post_replacement[as_pending]'?: boolean;\n };\n path?: never;\n query?: never;\n url: '/post_replacements.json';\n};\n\nexport type PostReplacementsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Error\n */\n 412: MessageErrorResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostReplacementsCreateError = PostReplacementsCreateErrors[keyof PostReplacementsCreateErrors];\n\nexport type PostReplacementsCreateResponses = {\n /**\n * Success\n */\n 200: {\n success: true;\n location: string;\n };\n};\n\nexport type PostReplacementsCreateResponse = PostReplacementsCreateResponses[keyof PostReplacementsCreateResponses];\n\nexport type PostReplacementsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_replacements/{id}.json';\n};\n\nexport type PostReplacementsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostReplacementsDestroyError = PostReplacementsDestroyErrors[keyof PostReplacementsDestroyErrors];\n\nexport type PostReplacementsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostReplacementsDestroyResponse = PostReplacementsDestroyResponses[keyof PostReplacementsDestroyResponses];\n\nexport type PostReplacementsApproveData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_replacements/{id}/approve.json';\n};\n\nexport type PostReplacementsApproveErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostReplacementsApproveError = PostReplacementsApproveErrors[keyof PostReplacementsApproveErrors];\n\nexport type PostReplacementsApproveResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostReplacementsApproveResponse = PostReplacementsApproveResponses[keyof PostReplacementsApproveResponses];\n\nexport type PostReplacementsRejectData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_replacements/{id}/reject.json';\n};\n\nexport type PostReplacementsRejectErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostReplacementsRejectError = PostReplacementsRejectErrors[keyof PostReplacementsRejectErrors];\n\nexport type PostReplacementsRejectResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostReplacementsRejectResponse = PostReplacementsRejectResponses[keyof PostReplacementsRejectResponses];\n\nexport type PostReplacementsPromoteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_replacements/{id}/promote.json';\n};\n\nexport type PostReplacementsPromoteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostReplacementsPromoteError = PostReplacementsPromoteErrors[keyof PostReplacementsPromoteErrors];\n\nexport type PostReplacementsPromoteResponses = {\n /**\n * Success\n */\n 201: {\n post: Post;\n };\n};\n\nexport type PostReplacementsPromoteResponse = PostReplacementsPromoteResponses[keyof PostReplacementsPromoteResponses];\n\nexport type PostReplacementsTogglePenalizeData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_replacements/{id}/toggle_penalize.json';\n};\n\nexport type PostReplacementsTogglePenalizeErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostReplacementsTogglePenalizeError = PostReplacementsTogglePenalizeErrors[keyof PostReplacementsTogglePenalizeErrors];\n\nexport type PostReplacementsTogglePenalizeResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostReplacementsTogglePenalizeResponse = PostReplacementsTogglePenalizeResponses[keyof PostReplacementsTogglePenalizeResponses];\n\nexport type PostVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750. Note that for post versions specifically, you can only go through the 10,000 most recent results with page numbers.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[updater_name]'?: string;\n 'search[updater_id]'?: number;\n 'search[post_id]'?: number;\n 'search[start_id]'?: number;\n 'search[rating]'?: Ratings;\n 'search[rating_changed]'?: 'e' | 'q' | 's' | 'any';\n 'search[parent_id]'?: number;\n 'search[parent_id_changed]'?: boolean;\n 'search[tags]'?: string;\n 'search[tags_removed]'?: string;\n 'search[tags_added]'?: string;\n 'search[locked_tags]'?: string;\n 'search[locked_tags_removed]'?: string;\n 'search[locked_tags_added]'?: string;\n 'search[reason]'?: string;\n 'search[description]'?: string;\n 'search[description_changed]'?: boolean;\n 'search[source_changed]'?: boolean;\n 'search[uploads]'?: 'included' | 'excluded' | 'only';\n };\n url: '/post_versions.json';\n};\n\nexport type PostVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostVersion>;\n};\n\nexport type PostVersionsIndexResponse = PostVersionsIndexResponses[keyof PostVersionsIndexResponses];\n\nexport type PostVersionsHideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_versions/{id}/hide.json';\n};\n\nexport type PostVersionsHideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostVersionsHideError = PostVersionsHideErrors[keyof PostVersionsHideErrors];\n\nexport type PostVersionsUnhideData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_versions/{id}/unhide.json';\n};\n\nexport type PostVersionsUnhideErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostVersionsUnhideError = PostVersionsUnhideErrors[keyof PostVersionsUnhideErrors];\n\nexport type PostVersionsUndoData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/post_versions/{id}/undo.json';\n};\n\nexport type PostVersionsUndoErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type PostVersionsUndoError = PostVersionsUndoErrors[keyof PostVersionsUndoErrors];\n\nexport type PostVersionsUndoResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostVersionsUndoResponse = PostVersionsUndoResponses[keyof PostVersionsUndoResponses];\n\nexport type PostVotesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results. You must be Admin+.\n */\n 'search[order]'?: 'id_asc' | 'id_desc' | 'ip_addr';\n 'search[post_id]'?: number;\n 'search[user_name]'?: string;\n 'search[user_id]'?: number;\n /**\n * Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[post_creator_name]'?: string;\n /**\n * Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[post_creator_id]'?: number;\n /**\n * You must be Admin+. Only usable if one of `post_id`, `user_name`, or `user_id` is also provided. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[user_ip_addr]'?: string;\n /**\n * Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[score]'?: UpDownVote;\n /**\n * You must be Admin+. Only usable if one of `post_id`, `user_name`, or `user_id` is also provided.\n */\n 'search[duplicates_only]'?: boolean;\n };\n url: '/post_votes.json';\n};\n\nexport type PostVotesIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostVote>;\n};\n\nexport type PostVotesIndexResponse = PostVotesIndexResponses[keyof PostVotesIndexResponses];\n\nexport type PostVotesLockData = {\n body?: never;\n path?: never;\n query: {\n /**\n * The IDs of the post votes, comma separated.\n */\n ids: string;\n };\n url: '/post_votes/lock.json';\n};\n\nexport type PostVotesLockErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type PostVotesLockError = PostVotesLockErrors[keyof PostVotesLockErrors];\n\nexport type PostVotesLockResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostVotesLockResponse = PostVotesLockResponses[keyof PostVotesLockResponses];\n\nexport type PostVotesDeleteData = {\n body?: never;\n path?: never;\n query: {\n /**\n * The IDs of the post votes, comma separated.\n */\n ids: string;\n };\n url: '/post_votes/delete.json';\n};\n\nexport type PostVotesDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type PostVotesDeleteError = PostVotesDeleteErrors[keyof PostVotesDeleteErrors];\n\nexport type PostVotesDeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type PostVotesDeleteResponse = PostVotesDeleteResponses[keyof PostVotesDeleteResponses];\n\nexport type TagsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'name' | 'date' | 'count' | 'similarity';\n 'search[fuzzy_name_matches]'?: string;\n 'search[name_matches]'?: string;\n 'search[name]'?: string;\n 'search[category]'?: TagCategories;\n 'search[hide_empty]'?: boolean;\n 'search[has_wiki]'?: boolean;\n 'search[has_artist]'?: boolean;\n };\n url: '/tags.json';\n};\n\nexport type TagsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Tag>;\n};\n\nexport type TagsIndexResponse = TagsIndexResponses[keyof TagsIndexResponses];\n\nexport type TagsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tags/{id}.json';\n};\n\nexport type TagsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagsDestroyError = TagsDestroyErrors[keyof TagsDestroyErrors];\n\nexport type TagsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagsDestroyResponse = TagsDestroyResponses[keyof TagsDestroyResponses];\n\nexport type TagsShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n id: number | string;\n };\n query?: never;\n url: '/tags/{id}.json';\n};\n\nexport type TagsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagsShowError = TagsShowErrors[keyof TagsShowErrors];\n\nexport type TagsShowResponses = {\n /**\n * Success\n */\n 200: Tag;\n};\n\nexport type TagsShowResponse = TagsShowResponses[keyof TagsShowResponses];\n\nexport type TagsUpdateData = {\n body?: {\n category?: TagCategories;\n /**\n * Must be Admin+.\n */\n is_locked?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tags/{id}.json';\n};\n\nexport type TagsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TagsUpdateError = TagsUpdateErrors[keyof TagsUpdateErrors];\n\nexport type TagsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagsUpdateResponse = TagsUpdateResponses[keyof TagsUpdateResponses];\n\nexport type TagCorrectionsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tags/{id}/correction.json';\n};\n\nexport type TagCorrectionsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagCorrectionsShowError = TagCorrectionsShowErrors[keyof TagCorrectionsShowErrors];\n\nexport type TagCorrectionsShowResponses = {\n /**\n * Success\n */\n 200: TagCorrection;\n};\n\nexport type TagCorrectionsShowResponse = TagCorrectionsShowResponses[keyof TagCorrectionsShowResponses];\n\nexport type TagCorrectionsCreateData = {\n body?: {\n /**\n * If not set, nothing will happen.\n */\n commit: 'Fix';\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tags/{id}/correction.json';\n};\n\nexport type TagCorrectionsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagCorrectionsCreateError = TagCorrectionsCreateErrors[keyof TagCorrectionsCreateErrors];\n\nexport type TagsPreviewData = {\n body?: {\n /**\n * The tags to preview, space separated.\n */\n tags: string;\n };\n path?: never;\n query?: never;\n url: '/tags/preview.json';\n};\n\nexport type TagsPreviewErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type TagsPreviewError = TagsPreviewErrors[keyof TagsPreviewErrors];\n\nexport type TagsPreviewResponses = {\n /**\n * Success\n */\n 200: Array<TagPreview>;\n};\n\nexport type TagsPreviewResponse = TagsPreviewResponses[keyof TagsPreviewResponses];\n\nexport type TagTypeVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[tag]'?: string;\n 'search[user_id]'?: string;\n 'search[user_name]'?: string;\n };\n url: '/tag_type_versions.json';\n};\n\nexport type TagTypeVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<TagTypeVersion>;\n};\n\nexport type TagTypeVersionsIndexResponse = TagTypeVersionsIndexResponses[keyof TagTypeVersionsIndexResponses];\n\nexport type TagAliasesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'created_at' | 'updated_at' | 'name' | 'tag_count';\n 'search[name_matches]'?: string;\n 'search[antecedent_name]'?: string;\n 'search[consequent_name]'?: string;\n 'search[status]'?: TagRequestStatuses;\n 'search[antecedent_tag_category]'?: TagCategories;\n 'search[consequent_tag_category]'?: TagCategories;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[approver_id]'?: number;\n 'search[approver_name]'?: string;\n };\n url: '/tag_aliases.json';\n};\n\nexport type TagAliasesIndexResponses = {\n /**\n * Success\n */\n 200: Array<TagAlias>;\n};\n\nexport type TagAliasesIndexResponse = TagAliasesIndexResponses[keyof TagAliasesIndexResponses];\n\nexport type TagAliasesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_aliases/{id}.json';\n};\n\nexport type TagAliasesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagAliasesDestroyError = TagAliasesDestroyErrors[keyof TagAliasesDestroyErrors];\n\nexport type TagAliasesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagAliasesDestroyResponse = TagAliasesDestroyResponses[keyof TagAliasesDestroyResponses];\n\nexport type TagAliasesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_aliases/{id}.json';\n};\n\nexport type TagAliasesShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagAliasesShowError = TagAliasesShowErrors[keyof TagAliasesShowErrors];\n\nexport type TagAliasesShowResponses = {\n /**\n * Success\n */\n 200: TagAlias;\n};\n\nexport type TagAliasesShowResponse = TagAliasesShowResponses[keyof TagAliasesShowResponses];\n\nexport type TagAliasesUpdateData = {\n body?: {\n antecedent_name?: string;\n consequent_name?: string;\n forum_topic_id?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_aliases/{id}.json';\n};\n\nexport type TagAliasesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TagAliasesUpdateError = TagAliasesUpdateErrors[keyof TagAliasesUpdateErrors];\n\nexport type TagAliasesUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagAliasesUpdateResponse = TagAliasesUpdateResponses[keyof TagAliasesUpdateResponses];\n\nexport type TagAliasesApproveData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_aliases/{id}/approve.json';\n};\n\nexport type TagAliasesApproveErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TagAliasesApproveError = TagAliasesApproveErrors[keyof TagAliasesApproveErrors];\n\nexport type TagAliasesApproveResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagAliasesApproveResponse = TagAliasesApproveResponses[keyof TagAliasesApproveResponses];\n\nexport type TagAliasRequestsCreateData = {\n body?: {\n antecedent_name: string;\n consequent_name: string;\n reason: string;\n /**\n * Must be Admin+.\n */\n skip_forum?: boolean;\n };\n path?: never;\n query?: never;\n url: '/tag_alias_requests.json';\n};\n\nexport type TagAliasRequestsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Failure\n */\n 406: unknown;\n};\n\nexport type TagAliasRequestsCreateError = TagAliasRequestsCreateErrors[keyof TagAliasRequestsCreateErrors];\n\nexport type TagImplicationsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'created_at' | 'updated_at' | 'name' | 'tag_count';\n 'search[name_matches]'?: string;\n 'search[antecedent_name]'?: string;\n 'search[consequent_name]'?: string;\n 'search[status]'?: TagRequestStatuses;\n 'search[antecedent_tag_category]'?: TagCategories;\n 'search[consequent_tag_category]'?: TagCategories;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[approver_id]'?: number;\n 'search[approver_name]'?: string;\n };\n url: '/tag_implications.json';\n};\n\nexport type TagImplicationsIndexResponses = {\n /**\n * Success\n */\n 200: Array<TagImplication>;\n};\n\nexport type TagImplicationsIndexResponse = TagImplicationsIndexResponses[keyof TagImplicationsIndexResponses];\n\nexport type TagImplicationsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_implications/{id}.json';\n};\n\nexport type TagImplicationsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagImplicationsDestroyError = TagImplicationsDestroyErrors[keyof TagImplicationsDestroyErrors];\n\nexport type TagImplicationsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagImplicationsDestroyResponse = TagImplicationsDestroyResponses[keyof TagImplicationsDestroyResponses];\n\nexport type TagImplicationsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_implications/{id}.json';\n};\n\nexport type TagImplicationsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TagImplicationsShowError = TagImplicationsShowErrors[keyof TagImplicationsShowErrors];\n\nexport type TagImplicationsShowResponses = {\n /**\n * Success\n */\n 200: TagImplication;\n};\n\nexport type TagImplicationsShowResponse = TagImplicationsShowResponses[keyof TagImplicationsShowResponses];\n\nexport type TagImplicationsUpdateData = {\n body?: {\n antecedent_name?: string;\n consequent_name?: string;\n forum_topic_id?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_implications/{id}.json';\n};\n\nexport type TagImplicationsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TagImplicationsUpdateError = TagImplicationsUpdateErrors[keyof TagImplicationsUpdateErrors];\n\nexport type TagImplicationsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagImplicationsUpdateResponse = TagImplicationsUpdateResponses[keyof TagImplicationsUpdateResponses];\n\nexport type TagImplicationsApproveData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tag_implications/{id}/approve.json';\n};\n\nexport type TagImplicationsApproveErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TagImplicationsApproveError = TagImplicationsApproveErrors[keyof TagImplicationsApproveErrors];\n\nexport type TagImplicationsApproveResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TagImplicationsApproveResponse = TagImplicationsApproveResponses[keyof TagImplicationsApproveResponses];\n\nexport type TagImplicationRequestsCreateData = {\n body?: {\n antecedent_name: string;\n consequent_name: string;\n reason: string;\n /**\n * Must be Admin+.\n */\n skip_forum?: boolean;\n };\n path?: never;\n query?: never;\n url: '/tag_implication_requests.json';\n};\n\nexport type TagImplicationRequestsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Failure\n */\n 406: unknown;\n};\n\nexport type TagImplicationRequestsCreateError = TagImplicationRequestsCreateErrors[keyof TagImplicationRequestsCreateErrors];\n\nexport type RelatedTagsBulkData = {\n body?: {\n query?: string;\n category_id?: TagCategories;\n };\n path?: never;\n query?: never;\n url: '/related_tag/bulk.json';\n};\n\nexport type RelatedTagsBulkErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type RelatedTagsBulkError = RelatedTagsBulkErrors[keyof RelatedTagsBulkErrors];\n\nexport type RelatedTagsBulkResponses = {\n /**\n * Success\n */\n 200: BulkRelatedTag;\n};\n\nexport type RelatedTagsBulkResponse = RelatedTagsBulkResponses[keyof RelatedTagsBulkResponses];\n\nexport type SearchTrendsIndexData = {\n body?: never;\n path?: never;\n query?: {\n day?: string;\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/search_trends.json';\n};\n\nexport type SearchTrendsIndexResponses = {\n /**\n * Success\n */\n 200: Array<SearchTrend>;\n};\n\nexport type SearchTrendsIndexResponse = SearchTrendsIndexResponses[keyof SearchTrendsIndexResponses];\n\nexport type SearchTrendsRisingData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/search_trends/rising.json';\n};\n\nexport type SearchTrendsRisingResponses = {\n /**\n * Success\n */\n 200: Array<RisingSearchTrend>;\n};\n\nexport type SearchTrendsRisingResponse = SearchTrendsRisingResponses[keyof SearchTrendsRisingResponses];\n\nexport type SearchTrendsClearCacheData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/search_trends/clear_cache.json';\n};\n\nexport type SearchTrendsClearCacheErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type SearchTrendsClearCacheError = SearchTrendsClearCacheErrors[keyof SearchTrendsClearCacheErrors];\n\nexport type SearchTrendsClearCacheResponses = {\n /**\n * Success\n */\n 200: MessageSuccessResponse;\n};\n\nexport type SearchTrendsClearCacheResponse = SearchTrendsClearCacheResponses[keyof SearchTrendsClearCacheResponses];\n\nexport type SearchTrendsUpdateSettingsData = {\n body?: {\n trends_enabled?: boolean;\n trends_displayed?: boolean;\n trends_min_today?: number;\n trends_min_dleta?: number;\n trends_min_ratio?: number;\n trends_ip_limit?: number;\n trends_ip_window?: number;\n trends_tag_limit?: number;\n trends_tag_window?: number;\n };\n path?: never;\n query?: never;\n url: '/search_trends/update_settings.json';\n};\n\nexport type SearchTrendsUpdateSettingsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type SearchTrendsUpdateSettingsError = SearchTrendsUpdateSettingsErrors[keyof SearchTrendsUpdateSettingsErrors];\n\nexport type SearchTrendsUpdateSettingsResponses = {\n /**\n * Success\n */\n 200: MessageSuccessResponse;\n};\n\nexport type SearchTrendsUpdateSettingsResponse = SearchTrendsUpdateSettingsResponses[keyof SearchTrendsUpdateSettingsResponses];\n\nexport type SearchTrendsPurgeData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/search_trends/{id}/purge.json';\n};\n\nexport type SearchTrendsPurgeErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type SearchTrendsPurgeError = SearchTrendsPurgeErrors[keyof SearchTrendsPurgeErrors];\n\nexport type SearchTrendsPurgeResponses = {\n /**\n * Success\n */\n 200: {\n deleted_count: number;\n };\n};\n\nexport type SearchTrendsPurgeResponse = SearchTrendsPurgeResponses[keyof SearchTrendsPurgeResponses];\n\nexport type SearchTrendBlacklistsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n tag?: string;\n reason?: string;\n };\n url: '/search_trend_blacklists.json';\n};\n\nexport type SearchTrendBlacklistsIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type SearchTrendBlacklistsIndexError = SearchTrendBlacklistsIndexErrors[keyof SearchTrendBlacklistsIndexErrors];\n\nexport type SearchTrendBlacklistsIndexResponses = {\n /**\n * Success\n */\n 200: Array<SearchTrendBlacklist>;\n};\n\nexport type SearchTrendBlacklistsIndexResponse = SearchTrendBlacklistsIndexResponses[keyof SearchTrendBlacklistsIndexResponses];\n\nexport type SearchTrendBlacklistsCreateData = {\n body?: {\n tag: string;\n reason: string;\n };\n path?: never;\n query?: never;\n url: '/search_trend_blacklists.json';\n};\n\nexport type SearchTrendBlacklistsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type SearchTrendBlacklistsCreateError = SearchTrendBlacklistsCreateErrors[keyof SearchTrendBlacklistsCreateErrors];\n\nexport type SearchTrendBlacklistsCreateResponses = {\n /**\n * Success\n */\n 201: SearchTrendBlacklist;\n};\n\nexport type SearchTrendBlacklistsCreateResponse = SearchTrendBlacklistsCreateResponses[keyof SearchTrendBlacklistsCreateResponses];\n\nexport type SearchTrendBlacklistsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/search_trend_blacklists/{id}.json';\n};\n\nexport type SearchTrendBlacklistsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type SearchTrendBlacklistsDestroyError = SearchTrendBlacklistsDestroyErrors[keyof SearchTrendBlacklistsDestroyErrors];\n\nexport type SearchTrendBlacklistsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type SearchTrendBlacklistsDestroyResponse = SearchTrendBlacklistsDestroyResponses[keyof SearchTrendBlacklistsDestroyResponses];\n\nexport type SessionsCreateData = {\n body?: {\n /**\n * CSRF Token\n */\n authenticity_token: string;\n /**\n * Optional relative URL to redirect to after login, defaults to `/posts`.\n */\n 'session[url]'?: string;\n 'session[name]': string;\n 'session[password]': string;\n };\n path?: never;\n query?: never;\n url: '/session.json';\n};\n\nexport type SessionsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Failure\n */\n 406: unknown;\n};\n\nexport type SessionsCreateError = SessionsCreateErrors[keyof SessionsCreateErrors];\n\nexport type StaffNotesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[updater_id]'?: number;\n 'search[updater_name]'?: string;\n 'search[user_id]'?: number;\n 'search[user_name]'?: string;\n 'search[body_matches]'?: string;\n 'search[without_system_user]'?: boolean;\n 'search[include_deleted]'?: boolean;\n };\n url: '/staff_notes.json';\n};\n\nexport type StaffNotesIndexResponses = {\n /**\n * Success\n */\n 200: Array<StaffNote>;\n};\n\nexport type StaffNotesIndexResponse = StaffNotesIndexResponses[keyof StaffNotesIndexResponses];\n\nexport type StaffNotesCreateData = {\n body?: {\n body: string;\n };\n path?: never;\n query?: never;\n url: '/staff_notes.json';\n};\n\nexport type StaffNotesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffNotesCreateError = StaffNotesCreateErrors[keyof StaffNotesCreateErrors];\n\nexport type StaffNotesCreateResponses = {\n /**\n * Success\n */\n 201: StaffNote;\n};\n\nexport type StaffNotesCreateResponse = StaffNotesCreateResponses[keyof StaffNotesCreateResponses];\n\nexport type StaffNotesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff_notes/{id}.json';\n};\n\nexport type StaffNotesShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffNotesShowError = StaffNotesShowErrors[keyof StaffNotesShowErrors];\n\nexport type StaffNotesShowResponses = {\n /**\n * Success\n */\n 200: StaffNote;\n};\n\nexport type StaffNotesShowResponse = StaffNotesShowResponses[keyof StaffNotesShowResponses];\n\nexport type StaffNotesUpdateData = {\n body?: {\n body?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff_notes/{id}.json';\n};\n\nexport type StaffNotesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffNotesUpdateError = StaffNotesUpdateErrors[keyof StaffNotesUpdateErrors];\n\nexport type StaffNotesUpdateResponses = {\n /**\n * Success\n */\n 200: StaffNote;\n};\n\nexport type StaffNotesUpdateResponse = StaffNotesUpdateResponses[keyof StaffNotesUpdateResponses];\n\nexport type StaffNotesDeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff_notes/{id}/delete.json';\n};\n\nexport type StaffNotesDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffNotesDeleteError = StaffNotesDeleteErrors[keyof StaffNotesDeleteErrors];\n\nexport type StaffNotesDeleteResponses = {\n /**\n * Success\n */\n 201: StaffNote;\n};\n\nexport type StaffNotesDeleteResponse = StaffNotesDeleteResponses[keyof StaffNotesDeleteResponses];\n\nexport type StaffNotesUndeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff_notes/{id}/undelete.json';\n};\n\nexport type StaffNotesUndeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffNotesUndeleteError = StaffNotesUndeleteErrors[keyof StaffNotesUndeleteErrors];\n\nexport type StaffNotesUndeleteResponses = {\n /**\n * Success\n */\n 201: StaffNote;\n};\n\nexport type StaffNotesUndeleteResponse = StaffNotesUndeleteResponses[keyof StaffNotesUndeleteResponses];\n\nexport type TakedownsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * Must Admin+ to use.\n */\n 'search[order]'?: 'id_asc' | 'id_desc' | 'status' | 'post_count';\n 'search[status]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[source]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[reason]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[creator_id]'?: number;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[creator_name]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[reason_hidden]'?: boolean;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[instructions]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[post_id]'?: number;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[notes]'?: string;\n /**\n * Must be Moderator+ or Approver to use.\n */\n 'search[creator_logged_in]'?: boolean;\n /**\n * Must be Admin+ to use.\n */\n 'search[email]'?: string;\n /**\n * Must be Admin+ to use.\n */\n 'search[vericode]'?: string;\n };\n url: '/takedowns.json';\n};\n\nexport type TakedownsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Takedown>;\n};\n\nexport type TakedownsIndexResponse = TakedownsIndexResponses[keyof TakedownsIndexResponses];\n\nexport type TakedownsCreateData = {\n body?: {\n email: string;\n source?: string;\n instructions?: string;\n reason: string;\n /**\n * post_ids][]=1&takedown[post_ids][=2\n */\n post_ids?: Array<number>;\n reason_hidden?: boolean;\n /**\n * Must have the bd staff user flag to use.\n */\n notes?: string;\n /**\n * Must have the bd staff user flag to use.\n * del_post_ids][]=1&takedown[del_post_ids][=2\n *\n */\n del_post_ids?: Array<number>;\n /**\n * Must have the bd staff user flag to use.\n */\n status?: string;\n };\n path?: never;\n query?: never;\n url: '/takedowns.json';\n};\n\nexport type TakedownsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TakedownsCreateError = TakedownsCreateErrors[keyof TakedownsCreateErrors];\n\nexport type TakedownsCreateResponses = {\n /**\n * Success\n */\n 201: Takedown;\n};\n\nexport type TakedownsCreateResponse = TakedownsCreateResponses[keyof TakedownsCreateResponses];\n\nexport type TakedownsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}.json';\n};\n\nexport type TakedownsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsDestroyError = TakedownsDestroyErrors[keyof TakedownsDestroyErrors];\n\nexport type TakedownsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TakedownsDestroyResponse = TakedownsDestroyResponses[keyof TakedownsDestroyResponses];\n\nexport type TakedownsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}.json';\n};\n\nexport type TakedownsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsShowError = TakedownsShowErrors[keyof TakedownsShowErrors];\n\nexport type TakedownsShowResponses = {\n /**\n * Success\n */\n 200: Takedown;\n};\n\nexport type TakedownsShowResponse = TakedownsShowResponses[keyof TakedownsShowResponses];\n\nexport type TakedownsUpdateData = {\n body?: {\n notes?: string;\n reason_hidden?: boolean;\n takedown_posts?: string;\n /**\n * If not truthy, the takedown will be denied.\n */\n process_takedown?: boolean;\n delete_reason?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}.json';\n};\n\nexport type TakedownsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type TakedownsUpdateError = TakedownsUpdateErrors[keyof TakedownsUpdateErrors];\n\nexport type TakedownsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TakedownsUpdateResponse = TakedownsUpdateResponses[keyof TakedownsUpdateResponses];\n\nexport type TakedownsAddByIdsData = {\n body?: {\n post_ids: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}/add_by_ids.json';\n};\n\nexport type TakedownsAddByIdsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsAddByIdsError = TakedownsAddByIdsErrors[keyof TakedownsAddByIdsErrors];\n\nexport type TakedownsAddByIdsResponses = {\n /**\n * Success\n */\n 200: {\n added_count: number;\n added_post_ids: Array<number>;\n };\n};\n\nexport type TakedownsAddByIdsResponse = TakedownsAddByIdsResponses[keyof TakedownsAddByIdsResponses];\n\nexport type TakedownsAddByTagsData = {\n body?: {\n post_tags: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}/add_by_tags.json';\n};\n\nexport type TakedownsAddByTagsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsAddByTagsError = TakedownsAddByTagsErrors[keyof TakedownsAddByTagsErrors];\n\nexport type TakedownsAddByTagsResponses = {\n /**\n * Success\n */\n 200: {\n added_count: number;\n added_post_ids: Array<number>;\n };\n};\n\nexport type TakedownsAddByTagsResponse = TakedownsAddByTagsResponses[keyof TakedownsAddByTagsResponses];\n\nexport type TakedownsCountMatchingPostsData = {\n body?: {\n post_tags: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}/count_matching_posts.json';\n};\n\nexport type TakedownsCountMatchingPostsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsCountMatchingPostsError = TakedownsCountMatchingPostsErrors[keyof TakedownsCountMatchingPostsErrors];\n\nexport type TakedownsCountMatchingPostsResponses = {\n /**\n * Success\n */\n 200: {\n matched_post_count: number;\n };\n};\n\nexport type TakedownsCountMatchingPostsResponse = TakedownsCountMatchingPostsResponses[keyof TakedownsCountMatchingPostsResponses];\n\nexport type TakedownsRemoveByIdsData = {\n body?: {\n post_ids: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/takedowns/{id}/remove_by_ids.json';\n};\n\nexport type TakedownsRemoveByIdsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TakedownsRemoveByIdsError = TakedownsRemoveByIdsErrors[keyof TakedownsRemoveByIdsErrors];\n\nexport type TakedownsRemoveByIdsResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TakedownsRemoveByIdsResponse = TakedownsRemoveByIdsResponses[keyof TakedownsRemoveByIdsResponses];\n\nexport type TicketsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * You must be Staff+.\n */\n 'search[creator_name]'?: string;\n /**\n * You must be Staff+ unless providing your own id.\n */\n 'search[creator_id]'?: number;\n /**\n * You must be Staff+.\n */\n 'search[claimant_name]'?: string;\n /**\n * You must be Staff+.\n */\n 'search[claimant_id]'?: number;\n /**\n * You must be Staff+.\n */\n 'search[accused_name]'?: string;\n /**\n * You must be Staff+.\n */\n 'search[accused_id]'?: number;\n /**\n * You must be Staff+.\n */\n 'search[disp_id]'?: number;\n 'search[qtype]'?: TicketTypes;\n /**\n * You must be Staff+.\n */\n 'search[reason]'?: string;\n 'search[status]'?: 'pending' | 'partial' | 'approved' | 'pending_claimed' | 'pending_unclaimed';\n };\n url: '/tickets.json';\n};\n\nexport type TicketsIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type TicketsIndexError = TicketsIndexErrors[keyof TicketsIndexErrors];\n\nexport type TicketsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Ticket>;\n};\n\nexport type TicketsIndexResponse = TicketsIndexResponses[keyof TicketsIndexResponses];\n\nexport type TicketsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tickets/{id}.json';\n};\n\nexport type TicketsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TicketsShowError = TicketsShowErrors[keyof TicketsShowErrors];\n\nexport type TicketsShowResponses = {\n /**\n * Success\n */\n 200: Ticket;\n};\n\nexport type TicketsShowResponse = TicketsShowResponses[keyof TicketsShowResponses];\n\nexport type TicketsUpdateData = {\n body?: {\n status?: 'partial' | 'approved';\n response: string;\n record_type?: WarningTypes;\n /**\n * An update dmail will always be sent when the status is changed.\n */\n send_update_dmail?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tickets/{id}.json';\n};\n\nexport type TicketsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TicketsUpdateError = TicketsUpdateErrors[keyof TicketsUpdateErrors];\n\nexport type TicketsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type TicketsUpdateResponse = TicketsUpdateResponses[keyof TicketsUpdateResponses];\n\nexport type TicketsClaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tickets/{id}/claim.json';\n};\n\nexport type TicketsClaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TicketsClaimError = TicketsClaimErrors[keyof TicketsClaimErrors];\n\nexport type TicketsClaimResponses = {\n /**\n * Success\n */\n 201: Ticket;\n};\n\nexport type TicketsClaimResponse = TicketsClaimResponses[keyof TicketsClaimResponses];\n\nexport type TicketsUnclaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/tickets/{id}/unclaim.json';\n};\n\nexport type TicketsUnclaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type TicketsUnclaimError = TicketsUnclaimErrors[keyof TicketsUnclaimErrors];\n\nexport type TicketsUnclaimResponses = {\n /**\n * Success\n */\n 201: Ticket;\n};\n\nexport type TicketsUnclaimResponse = TicketsUnclaimResponses[keyof TicketsUnclaimResponses];\n\nexport type UploadsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[uploader_id]'?: number;\n 'search[uploader_name]'?: string;\n 'search[source]'?: string;\n 'search[source_matches]'?: string;\n 'search[rating]'?: Ratings;\n 'search[parent_id]'?: number;\n 'search[post_id]'?: number;\n 'search[has_post]'?: boolean;\n 'search[post_tags_match]'?: string;\n /**\n * Note: The \"error\" status will be proceeded by an error, ex: \"error: RuntimeError - No file or source URL provided\"\n *\n */\n 'search[status]'?: 'completed' | 'processing' | 'pending' | 'error';\n 'search[backtrace]'?: string;\n 'search[tag_string]'?: string;\n };\n url: '/uploads.json';\n};\n\nexport type UploadsIndexResponses = {\n /**\n * Success\n */\n 200: Array<Upload>;\n};\n\nexport type UploadsIndexResponse = UploadsIndexResponses[keyof UploadsIndexResponses];\n\nexport type UploadsCreateData = {\n body?: {\n /**\n * Mutually exclusive with direct_url.\n */\n 'upload[file]'?: Blob | File;\n /**\n * Mutually exclusive with file.\n */\n 'upload[direct_url]'?: string;\n 'upload[source]'?: string;\n 'upload[tag_string]': string;\n 'upload[rating]': Ratings;\n 'upload[parent_id]'?: number;\n 'upload[description]'?: string;\n /**\n * Must have the \"Unrestricted Uploads\" permission.\n */\n 'upload[as_pending]'?: boolean;\n /**\n * Must be Privileged+ to use.\n */\n 'upload[locked_rating]'?: boolean;\n /**\n * Must be Admin+ to use.\n */\n 'upload[locked_tags]'?: string;\n };\n path?: never;\n query?: never;\n url: '/uploads.json';\n};\n\nexport type UploadsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Error\n */\n 412: MessageErrorResponse;\n};\n\nexport type UploadsCreateError = UploadsCreateErrors[keyof UploadsCreateErrors];\n\nexport type UploadsCreateResponses = {\n /**\n * Success\n */\n 200: {\n success: true;\n location: string;\n post_id: number;\n };\n};\n\nexport type UploadsCreateResponse = UploadsCreateResponses[keyof UploadsCreateResponses];\n\nexport type UploadsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/uploads/{id}.json';\n};\n\nexport type UploadsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UploadsShowError = UploadsShowErrors[keyof UploadsShowErrors];\n\nexport type UploadsShowResponses = {\n /**\n * Success\n */\n 200: Upload;\n};\n\nexport type UploadsShowResponse = UploadsShowResponses[keyof UploadsShowResponses];\n\nexport type UploadWhitelistsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'domain' | 'path' | 'updated_at' | 'created_at';\n 'search[domain]'?: string;\n 'search[path]'?: string;\n 'search[note]'?: string;\n 'search[reason]'?: string;\n };\n url: '/upload_whitelists.json';\n};\n\nexport type UploadWhitelistsIndexResponses = {\n /**\n * Success\n */\n 200: Array<UploadWhitelist>;\n};\n\nexport type UploadWhitelistsIndexResponse = UploadWhitelistsIndexResponses[keyof UploadWhitelistsIndexResponses];\n\nexport type UploadWhitelistsCreateData = {\n body?: {\n allowed: string;\n domain: string;\n path: string;\n reason?: string;\n note?: string;\n hidden?: boolean;\n };\n path?: never;\n query?: never;\n url: '/upload_whitelists.json';\n};\n\nexport type UploadWhitelistsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UploadWhitelistsCreateError = UploadWhitelistsCreateErrors[keyof UploadWhitelistsCreateErrors];\n\nexport type UploadWhitelistsCreateResponses = {\n /**\n * Success\n */\n 201: UploadWhitelist;\n};\n\nexport type UploadWhitelistsCreateResponse = UploadWhitelistsCreateResponses[keyof UploadWhitelistsCreateResponses];\n\nexport type UploadWhitelistsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/upload_whitelists/{id}.json';\n};\n\nexport type UploadWhitelistsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UploadWhitelistsDestroyError = UploadWhitelistsDestroyErrors[keyof UploadWhitelistsDestroyErrors];\n\nexport type UploadWhitelistsDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UploadWhitelistsDestroyResponse = UploadWhitelistsDestroyResponses[keyof UploadWhitelistsDestroyResponses];\n\nexport type UploadWhitelistsUpdateData = {\n body?: {\n allowed?: string;\n pattern?: string;\n reason?: string;\n note?: string;\n hidden?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/upload_whitelists/{id}.json';\n};\n\nexport type UploadWhitelistsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UploadWhitelistsUpdateError = UploadWhitelistsUpdateErrors[keyof UploadWhitelistsUpdateErrors];\n\nexport type UploadWhitelistsUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UploadWhitelistsUpdateResponse = UploadWhitelistsUpdateResponses[keyof UploadWhitelistsUpdateResponses];\n\nexport type UploadWhitelistsIsAllowedData = {\n body?: never;\n path?: never;\n query?: {\n url?: string;\n };\n url: '/upload_whitelists/is_allowed.json';\n};\n\nexport type UploadWhitelistsIsAllowedErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UploadWhitelistsIsAllowedError = UploadWhitelistsIsAllowedErrors[keyof UploadWhitelistsIsAllowedErrors];\n\nexport type UploadWhitelistsIsAllowedResponses = {\n /**\n * Success\n */\n 200: {\n url: string;\n domain: string;\n is_allowed: boolean;\n reason: string;\n };\n};\n\nexport type UploadWhitelistsIsAllowedResponse = UploadWhitelistsIsAllowedResponses[keyof UploadWhitelistsIsAllowedResponses];\n\nexport type UsersIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'name' | 'post_upload_count' | 'note_count' | 'post_update_count';\n 'search[name_matches]'?: string;\n 'search[about_me]'?: string;\n 'search[avatar_id]'?: number;\n 'search[level]'?: UserLevels;\n 'search[min_level]'?: UserLevels;\n 'search[max_level]'?: UserLevels;\n 'search[can_upload_free]'?: boolean;\n 'search[can_approve_posts]'?: boolean;\n /**\n * You must be Admin+.\n */\n 'search[email_matches]'?: string;\n };\n url: '/users.json';\n};\n\nexport type UsersIndexResponses = {\n /**\n * Success\n */\n 200: Array<User | FullCurrentUser>;\n};\n\nexport type UsersIndexResponse = UsersIndexResponses[keyof UsersIndexResponses];\n\nexport type UsersMeData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/users/me.json';\n};\n\nexport type UsersMeResponses = {\n /**\n * Success\n */\n 200: FullCurrentUser;\n};\n\nexport type UsersMeResponse = UsersMeResponses[keyof UsersMeResponses];\n\nexport type UsersAvatarMenuData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/users/avatar_menu.json';\n};\n\nexport type UsersAvatarMenuErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type UsersAvatarMenuError = UsersAvatarMenuErrors[keyof UsersAvatarMenuErrors];\n\nexport type UsersAvatarMenuResponses = {\n /**\n * Success\n */\n 200: UserAvatarMenu;\n};\n\nexport type UsersAvatarMenuResponse = UsersAvatarMenuResponses[keyof UsersAvatarMenuResponses];\n\nexport type UsersShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}.json';\n};\n\nexport type UsersShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UsersShowError = UsersShowErrors[keyof UsersShowErrors];\n\nexport type UsersShowResponses = {\n /**\n * Success\n */\n 200: FullUser | FullCurrentUser;\n};\n\nexport type UsersShowResponse = UsersShowResponses[keyof UsersShowResponses];\n\nexport type UsersUpdateData = {\n body?: {\n comment_threshold?: number;\n default_image_size?: 'large' | 'fit' | 'fitv' | 'original';\n favorite_tags?: string;\n blacklisted_tags?: string;\n /**\n * https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n */\n time_zone?: string;\n per_page?: number;\n custom_style?: string;\n description_collapsed_initially?: boolean;\n hide_comments?: boolean;\n receive_email_notifications?: boolean;\n enable_keyboard_navigation?: boolean;\n enable_privacy_mode?: boolean;\n disable_user_dmails?: boolean;\n blacklist_users?: boolean;\n show_post_statistics?: boolean;\n style_usernames?: boolean;\n show_hidden_comments?: boolean;\n enable_autocomplete?: boolean;\n disable_cropped_thumbnails?: boolean;\n enable_safe_mode?: boolean;\n disable_responsive_mode?: boolean;\n 'dmail_filter_attributes][id'?: number;\n 'dmail_filter_attributes][words'?: string;\n profile_about?: string;\n profile_artinfo?: string;\n avatar_id?: number;\n /**\n * You must have uploaded at least 10 posts.\n */\n enable_compact_uploader?: boolean;\n forum_notification_dot?: boolean;\n };\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}.json';\n};\n\nexport type UsersUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UsersUpdateError = UsersUpdateErrors[keyof UsersUpdateErrors];\n\nexport type UsersUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UsersUpdateResponse = UsersUpdateResponses[keyof UsersUpdateResponses];\n\nexport type UsersUploadLimitData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}/upload_limit.json';\n};\n\nexport type UsersUploadLimitErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type UsersUploadLimitError = UsersUploadLimitErrors[keyof UsersUploadLimitErrors];\n\nexport type UsersUploadLimitResponses = {\n /**\n * Success\n */\n 200: FullUser | FullCurrentUser;\n};\n\nexport type UsersUploadLimitResponse = UsersUploadLimitResponses[keyof UsersUploadLimitResponses];\n\nexport type UsersFlushFavoritesData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}/flush_favorites.json';\n};\n\nexport type UsersFlushFavoritesErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UsersFlushFavoritesError = UsersFlushFavoritesErrors[keyof UsersFlushFavoritesErrors];\n\nexport type UsersFixCountsData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}/fix_counts.json';\n};\n\nexport type UsersFixCountsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UsersFixCountsError = UsersFixCountsErrors[keyof UsersFixCountsErrors];\n\nexport type UsersToggleUploadsData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}/toggle_uploads.json';\n};\n\nexport type UsersToggleUploadsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UsersToggleUploadsError = UsersToggleUploadsErrors[keyof UsersToggleUploadsErrors];\n\nexport type UsersDisableUploadsData = {\n body?: {\n body: string;\n };\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n idOrName: number | string;\n };\n query?: never;\n url: '/users/{idOrName}/disable_uploads.json';\n};\n\nexport type UsersDisableUploadsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UsersDisableUploadsError = UsersDisableUploadsErrors[keyof UsersDisableUploadsErrors];\n\nexport type MaintenanceUserCountFixesCreateData = {\n body?: never;\n path?: never;\n query?: never;\n url: '/maintenance/user/count_fixes.json';\n};\n\nexport type MaintenanceUserCountFixesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type MaintenanceUserCountFixesCreateError = MaintenanceUserCountFixesCreateErrors[keyof MaintenanceUserCountFixesCreateErrors];\n\nexport type MaintenanceUserDmailFiltersUpdateData = {\n body?: {\n words: string;\n };\n path?: never;\n query: {\n /**\n * Due to the odd way this route works, a dmail is REQUIRED to edit your dmail filter. You must be the owner of the dmail.\n */\n dmail_id: number;\n };\n url: '/maintenance/user/dmail_filter.json';\n};\n\nexport type MaintenanceUserDmailFiltersUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type MaintenanceUserDmailFiltersUpdateError = MaintenanceUserDmailFiltersUpdateErrors[keyof MaintenanceUserDmailFiltersUpdateErrors];\n\nexport type MaintenanceUserDmailFiltersUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type MaintenanceUserDmailFiltersUpdateResponse = MaintenanceUserDmailFiltersUpdateResponses[keyof MaintenanceUserDmailFiltersUpdateResponses];\n\nexport type MaintenanceUserAvatarsUpdateData = {\n body?: {\n /**\n * The x coordinate of the top left corner of the crop area.\n */\n avatar_crop_x: number;\n /**\n * The y coordinate of the top left corner of the crop area.\n */\n avatar_crop_y: number;\n /**\n * The width of the crop area. The height is always the same as the width.\n */\n avatar_crop_w: number;\n };\n path?: never;\n query?: never;\n url: '/maintenance/user/avatar.json';\n};\n\nexport type MaintenanceUserAvatarsUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type MaintenanceUserAvatarsUpdateError = MaintenanceUserAvatarsUpdateErrors[keyof MaintenanceUserAvatarsUpdateErrors];\n\nexport type UserFeedbacksIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n /**\n * You must be Staff+.\n */\n 'search[deleted]'?: 'included' | 'excluded' | 'only';\n 'search[body_matches]'?: string;\n 'search[user_id]'?: number;\n 'search[user_name]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[category]'?: FeedbackCategories;\n };\n url: '/user_feedbacks.json';\n};\n\nexport type UserFeedbacksIndexResponses = {\n /**\n * Success\n */\n 200: Array<UserFeedback>;\n};\n\nexport type UserFeedbacksIndexResponse = UserFeedbacksIndexResponses[keyof UserFeedbacksIndexResponses];\n\nexport type UserFeedbacksCreateData = {\n body?: {\n user_id?: number;\n user_name?: string;\n body: string;\n category: FeedbackCategories;\n };\n path?: never;\n query?: never;\n url: '/user_feedbacks.json';\n};\n\nexport type UserFeedbacksCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UserFeedbacksCreateError = UserFeedbacksCreateErrors[keyof UserFeedbacksCreateErrors];\n\nexport type UserFeedbacksCreateResponses = {\n /**\n * Success\n */\n 201: UserFeedback;\n};\n\nexport type UserFeedbacksCreateResponse = UserFeedbacksCreateResponses[keyof UserFeedbacksCreateResponses];\n\nexport type UserFeedbacksDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_feedbacks/{id}.json';\n};\n\nexport type UserFeedbacksDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UserFeedbacksDestroyError = UserFeedbacksDestroyErrors[keyof UserFeedbacksDestroyErrors];\n\nexport type UserFeedbacksDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UserFeedbacksDestroyResponse = UserFeedbacksDestroyResponses[keyof UserFeedbacksDestroyResponses];\n\nexport type UserFeedbacksShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_feedbacks/{id}.json';\n};\n\nexport type UserFeedbacksShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UserFeedbacksShowError = UserFeedbacksShowErrors[keyof UserFeedbacksShowErrors];\n\nexport type UserFeedbacksShowResponses = {\n /**\n * Success\n */\n 200: UserFeedback;\n};\n\nexport type UserFeedbacksShowResponse = UserFeedbacksShowResponses[keyof UserFeedbacksShowResponses];\n\nexport type UserFeedbacksUpdateData = {\n body?: {\n body?: string;\n category?: FeedbackCategories;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_feedbacks/{id}.json';\n};\n\nexport type UserFeedbacksUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UserFeedbacksUpdateError = UserFeedbacksUpdateErrors[keyof UserFeedbacksUpdateErrors];\n\nexport type UserFeedbacksUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UserFeedbacksUpdateResponse = UserFeedbacksUpdateResponses[keyof UserFeedbacksUpdateResponses];\n\nexport type UserFeedbacksDeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_feedbacks/{id}/delete.json';\n};\n\nexport type UserFeedbacksDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UserFeedbacksDeleteError = UserFeedbacksDeleteErrors[keyof UserFeedbacksDeleteErrors];\n\nexport type UserFeedbacksDeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UserFeedbacksDeleteResponse = UserFeedbacksDeleteResponses[keyof UserFeedbacksDeleteResponses];\n\nexport type UserFeedbacksUndeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_feedbacks/{id}/undelete.json';\n};\n\nexport type UserFeedbacksUndeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UserFeedbacksUndeleteError = UserFeedbacksUndeleteErrors[keyof UserFeedbacksUndeleteErrors];\n\nexport type UserFeedbacksUndeleteResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type UserFeedbacksUndeleteResponse = UserFeedbacksUndeleteResponses[keyof UserFeedbacksUndeleteResponses];\n\nexport type UserNameChangeRequestsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[current_id]'?: number;\n 'search[current_name]'?: string;\n 'search[original_name]'?: string;\n 'search[desired_name]'?: string;\n };\n url: '/user_name_change_requests.json';\n};\n\nexport type UserNameChangeRequestsIndexResponses = {\n /**\n * Success\n */\n 200: Array<UserNameChangeRequest>;\n};\n\nexport type UserNameChangeRequestsIndexResponse = UserNameChangeRequestsIndexResponses[keyof UserNameChangeRequestsIndexResponses];\n\nexport type UserNameChangeRequestsCreateData = {\n body?: {\n desired_name: string;\n change_reason?: string;\n };\n path?: never;\n query?: never;\n url: '/user_name_change_requests.json';\n};\n\nexport type UserNameChangeRequestsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type UserNameChangeRequestsCreateError = UserNameChangeRequestsCreateErrors[keyof UserNameChangeRequestsCreateErrors];\n\nexport type UserNameChangeRequestsDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_name_change_requests/{id}.json';\n};\n\nexport type UserNameChangeRequestsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type UserNameChangeRequestsDestroyError = UserNameChangeRequestsDestroyErrors[keyof UserNameChangeRequestsDestroyErrors];\n\nexport type UserNameChangeRequestsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/user_name_change_requests/{id}.json';\n};\n\nexport type UserNameChangeRequestsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type UserNameChangeRequestsShowError = UserNameChangeRequestsShowErrors[keyof UserNameChangeRequestsShowErrors];\n\nexport type UserNameChangeRequestsShowResponses = {\n /**\n * Success\n */\n 200: UserNameChangeRequest;\n};\n\nexport type UserNameChangeRequestsShowResponse = UserNameChangeRequestsShowResponses[keyof UserNameChangeRequestsShowResponses];\n\nexport type WikiPagesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'title' | 'post_count';\n 'search[title]'?: string;\n 'search[title_matches]'?: string;\n 'search[body_matches]'?: string;\n 'search[other_names_match]'?: string;\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[parent]'?: string;\n 'search[other_names_present]'?: boolean;\n 'search[is_locked]'?: boolean;\n 'search[is_deleted]'?: boolean;\n };\n url: '/wiki_pages.json';\n};\n\nexport type WikiPagesIndexResponses = {\n /**\n * Success\n */\n 200: Array<WikiPage>;\n};\n\nexport type WikiPagesIndexResponse = WikiPagesIndexResponses[keyof WikiPagesIndexResponses];\n\nexport type WikiPagesCreateData = {\n body?: {\n title: string;\n body: string;\n edit_reason?: string;\n /**\n * Must be Privileged+ to use.\n */\n parent?: string;\n /**\n * Must be Staff+ to use.\n */\n is_locked?: boolean;\n /**\n * Must be Staff+ to use.\n */\n is_deleted?: boolean;\n /**\n * Must be Staff+ to use.\n */\n skip_secondary_validations?: boolean;\n /**\n * Space separated\n */\n featured_posts_string?: string;\n };\n path?: never;\n query?: never;\n url: '/wiki_pages.json';\n};\n\nexport type WikiPagesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type WikiPagesCreateError = WikiPagesCreateErrors[keyof WikiPagesCreateErrors];\n\nexport type WikiPagesCreateResponses = {\n /**\n * Success\n */\n 201: WikiPage;\n};\n\nexport type WikiPagesCreateResponse = WikiPagesCreateResponses[keyof WikiPagesCreateResponses];\n\nexport type WikiPagesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/wiki_pages/{id}.json';\n};\n\nexport type WikiPagesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type WikiPagesDestroyError = WikiPagesDestroyErrors[keyof WikiPagesDestroyErrors];\n\nexport type WikiPagesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type WikiPagesDestroyResponse = WikiPagesDestroyResponses[keyof WikiPagesDestroyResponses];\n\nexport type WikiPagesShowData = {\n body?: never;\n path: {\n /**\n * An ID that can be either an integer or a name.\n */\n id: number | string;\n };\n query?: never;\n url: '/wiki_pages/{id}.json';\n};\n\nexport type WikiPagesShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type WikiPagesShowError = WikiPagesShowErrors[keyof WikiPagesShowErrors];\n\nexport type WikiPagesShowResponses = {\n /**\n * Success\n */\n 200: WikiPage;\n};\n\nexport type WikiPagesShowResponse = WikiPagesShowResponses[keyof WikiPagesShowResponses];\n\nexport type WikiPagesUpdateData = {\n body?: {\n body?: string;\n edit_reason?: string;\n /**\n * Must be Privileged+ to use.\n */\n parent?: string;\n /**\n * Must be Staff+ to use.\n */\n title?: string;\n /**\n * Must be Staff+ to use.\n */\n is_locked?: boolean;\n /**\n * Must be Staff+ to use.\n */\n is_deleted?: boolean;\n /**\n * Must be Staff+ to use.\n */\n skip_secondary_validations?: boolean;\n category_id?: TagCategories;\n /**\n * Must be Admin+ to use.\n */\n category_is_locked?: boolean;\n /**\n * Space separated\n */\n featured_posts_string?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/wiki_pages/{id}.json';\n};\n\nexport type WikiPagesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type WikiPagesUpdateError = WikiPagesUpdateErrors[keyof WikiPagesUpdateErrors];\n\nexport type WikiPagesUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type WikiPagesUpdateResponse = WikiPagesUpdateResponses[keyof WikiPagesUpdateResponses];\n\nexport type WikiPagesRevertData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query: {\n /**\n * The version ID to revert to.\n */\n version_id: number;\n };\n url: '/wiki_pages/{id}/revert.json';\n};\n\nexport type WikiPagesRevertErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type WikiPagesRevertError = WikiPagesRevertErrors[keyof WikiPagesRevertErrors];\n\nexport type WikiPagesRevertResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type WikiPagesRevertResponse = WikiPagesRevertResponses[keyof WikiPagesRevertResponses];\n\nexport type WikiPageVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n /**\n * Must be Admin+ to use. See [the PostgreSQL documentation](https://www.postgresql.org/docs/9.3/functions-net.html) for information on how this is parsed. Specifically, \"is contained within or equals\" (`<<=`).\n */\n 'search[ip_addr]'?: string;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n 'search[updater_id]'?: number;\n 'search[updater_name]'?: string;\n 'search[wiki_page_id]'?: number;\n 'search[title]'?: string;\n 'search[body]'?: string;\n 'search[is_locked]'?: boolean;\n 'search[is_deleted]'?: boolean;\n };\n url: '/wiki_page_versions.json';\n};\n\nexport type WikiPageVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<WikiPageVersion>;\n};\n\nexport type WikiPageVersionsIndexResponse = WikiPageVersionsIndexResponses[keyof WikiPageVersionsIndexResponses];\n\nexport type WikiPageVersionsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/wiki_page_versions/{id}.json';\n};\n\nexport type WikiPageVersionsShowErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type WikiPageVersionsShowError = WikiPageVersionsShowErrors[keyof WikiPageVersionsShowErrors];\n\nexport type WikiPageVersionsShowResponses = {\n /**\n * Success\n */\n 200: WikiPageVersion;\n};\n\nexport type WikiPageVersionsShowResponse = WikiPageVersionsShowResponses[keyof WikiPageVersionsShowResponses];\n\nexport type StaffUsersAltListData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The page number of results to get. Between 1 and 9999.\n */\n page?: number;\n };\n url: '/staff/users/alt_list.json';\n};\n\nexport type StaffUsersAltListResponses = {\n /**\n * Success\n */\n 200: Array<number | Array<number>>;\n};\n\nexport type StaffUsersAltListResponse = StaffUsersAltListResponses[keyof StaffUsersAltListResponses];\n\nexport type StaffUsersUpdateData = {\n body?: {\n /**\n * Must have the bd staff user flag to use.\n */\n verified?: boolean;\n level?: UserLevels;\n name?: string;\n profile_about?: string;\n profile_artinfo?: string;\n base_upload_limit?: number;\n enable_privacy_mode?: boolean;\n /**\n * Must have the bd staff user flag to use.\n */\n email?: string;\n can_approve_posts?: boolean;\n can_upload_free?: boolean;\n no_flagging?: boolean;\n replacements_beta?: boolean;\n custom_title?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/users/{id}.json';\n};\n\nexport type StaffUsersUpdateErrors = {\n /**\n * Error\n */\n 400: MessageErrorResponse;\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffUsersUpdateError = StaffUsersUpdateErrors[keyof StaffUsersUpdateErrors];\n\nexport type StaffUsersUpdateResponses = {\n /**\n * Success\n */\n 200: unknown;\n};\n\nexport type StaffUsersAnonymizeConfirmData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/users/{id}/anonymize.json';\n};\n\nexport type StaffUsersAnonymizeConfirmErrors = {\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUsersAnonymizeConfirmError = StaffUsersAnonymizeConfirmErrors[keyof StaffUsersAnonymizeConfirmErrors];\n\nexport type StaffDmailsIndexData = {\n body?: never;\n path: {\n /**\n * The ID of the user.\n */\n user_id: number;\n };\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n };\n url: '/staff/users/{user_id}/dmails.json';\n};\n\nexport type StaffDmailsIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffDmailsIndexError = StaffDmailsIndexErrors[keyof StaffDmailsIndexErrors];\n\nexport type StaffDmailsIndexResponses = {\n /**\n * Success\n */\n 200: Array<DMail>;\n};\n\nexport type StaffDmailsIndexResponse = StaffDmailsIndexResponses[keyof StaffDmailsIndexResponses];\n\nexport type StaffDmailsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the user.\n */\n user_id: number;\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/users/{user_id}/dmails/{id}.json';\n};\n\nexport type StaffDmailsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffDmailsShowError = StaffDmailsShowErrors[keyof StaffDmailsShowErrors];\n\nexport type StaffDmailsShowResponses = {\n /**\n * Success\n */\n 200: DMail;\n};\n\nexport type StaffDmailsShowResponse = StaffDmailsShowResponses[keyof StaffDmailsShowResponses];\n\nexport type StaffAutomodDmailsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[title_matches]'?: string;\n 'search[message_matches]'?: string;\n 'search[to_name]'?: string;\n 'search[to_id]'?: number;\n 'search[from_name]'?: string;\n 'search[from_id]'?: number;\n 'search[is_read]'?: boolean;\n 'search[is_deleted]'?: boolean;\n 'search[read]'?: boolean;\n };\n url: '/staff/automod_dmails.json';\n};\n\nexport type StaffAutomodDmailsIndexResponses = {\n /**\n * Success\n */\n 200: Array<DMail>;\n};\n\nexport type StaffAutomodDmailsIndexResponse = StaffAutomodDmailsIndexResponses[keyof StaffAutomodDmailsIndexResponses];\n\nexport type StaffAutomodDmailsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/automod_dmails/{id}.json';\n};\n\nexport type StaffAutomodDmailsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffAutomodDmailsShowError = StaffAutomodDmailsShowErrors[keyof StaffAutomodDmailsShowErrors];\n\nexport type StaffAutomodDmailsShowResponses = {\n /**\n * Success\n */\n 200: DMail;\n};\n\nexport type StaffAutomodDmailsShowResponse = StaffAutomodDmailsShowResponses[keyof StaffAutomodDmailsShowResponses];\n\nexport type StaffAutomodDmailsMarkAsReadData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/automod_dmails/{id}/mark_as_read.json';\n};\n\nexport type StaffAutomodDmailsMarkAsReadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffAutomodDmailsMarkAsReadError = StaffAutomodDmailsMarkAsReadErrors[keyof StaffAutomodDmailsMarkAsReadErrors];\n\nexport type StaffAutomodDmailsMarkAsReadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffAutomodDmailsMarkAsReadResponse = StaffAutomodDmailsMarkAsReadResponses[keyof StaffAutomodDmailsMarkAsReadResponses];\n\nexport type StaffAutomodDmailsMarkAsUnreadData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/automod_dmails/{id}/mark_as_unread.json';\n};\n\nexport type StaffAutomodDmailsMarkAsUnreadErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffAutomodDmailsMarkAsUnreadError = StaffAutomodDmailsMarkAsUnreadErrors[keyof StaffAutomodDmailsMarkAsUnreadErrors];\n\nexport type StaffAutomodDmailsMarkAsUnreadResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffAutomodDmailsMarkAsUnreadResponse = StaffAutomodDmailsMarkAsUnreadResponses[keyof StaffAutomodDmailsMarkAsUnreadResponses];\n\nexport type StaffExceptionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * The order of the results.\n */\n 'search[order]'?: 'id_asc' | 'id_desc';\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[user_name]'?: string;\n 'search[code]'?: string;\n 'search[commit]'?: string;\n 'search[class_name]'?: string;\n 'search[without_class_name]'?: string;\n };\n url: '/staff/exceptions.json';\n};\n\nexport type StaffExceptionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<ExceptionLog>;\n};\n\nexport type StaffExceptionsIndexResponse = StaffExceptionsIndexResponses[keyof StaffExceptionsIndexResponses];\n\nexport type StaffExceptionsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/exceptions/{id}.json';\n};\n\nexport type StaffExceptionsShowResponses = {\n /**\n * Success\n */\n 200: ExceptionLog;\n};\n\nexport type StaffExceptionsShowResponse = StaffExceptionsShowResponses[keyof StaffExceptionsShowResponses];\n\nexport type StaffPostPostsDeleteData = {\n body?: {\n /**\n * If the post does not have an active flag, this is required.\n */\n reason?: string;\n /**\n * Move favorites to parent.\n */\n move_favorites?: boolean;\n /**\n * Copy sources to parent.\n */\n copy_sources?: boolean;\n /**\n * Copy tags to parent.\n */\n copy_tags?: boolean;\n /**\n * The content of the dmail to send to the uploader.\n * Placeholders:\n * - %REASON%\n * - %POST_ID%\n * - %STAFF_NAME%\n * - %STAFF_ID%\n * - %UPLOADER_ID%\n * - %FLAG_ID%\n *\n */\n dmail?: string;\n /**\n * The title of the dmail to send to the uploader.\n * Placeholders:\n * - %REASON%\n * - %POST_ID%\n * - %STAFF_NAME%\n * - %STAFF_ID%\n * - %UPLOADER_ID%\n * - %FLAG_ID%\n *\n */\n dmail_title?: string;\n /**\n * If not set, nothing will happen.\n */\n commit?: 'Delete';\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/delete.json';\n};\n\nexport type StaffPostPostsDeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsDeleteError = StaffPostPostsDeleteErrors[keyof StaffPostPostsDeleteErrors];\n\nexport type StaffPostPostsUndeleteData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/undelete.json';\n};\n\nexport type StaffPostPostsUndeleteErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsUndeleteError = StaffPostPostsUndeleteErrors[keyof StaffPostPostsUndeleteErrors];\n\nexport type StaffPostPostsUndeleteResponses = {\n /**\n * Success\n */\n 201: {\n post: Post;\n };\n};\n\nexport type StaffPostPostsUndeleteResponse = StaffPostPostsUndeleteResponses[keyof StaffPostPostsUndeleteResponses];\n\nexport type StaffPostPostsRegenerateThumbnailsData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/regenerate_thumbnails.json';\n};\n\nexport type StaffPostPostsRegenerateThumbnailsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsRegenerateThumbnailsError = StaffPostPostsRegenerateThumbnailsErrors[keyof StaffPostPostsRegenerateThumbnailsErrors];\n\nexport type StaffPostPostsRegenerateThumbnailsResponses = {\n /**\n * Success\n */\n 201: {\n post: Post;\n };\n};\n\nexport type StaffPostPostsRegenerateThumbnailsResponse = StaffPostPostsRegenerateThumbnailsResponses[keyof StaffPostPostsRegenerateThumbnailsResponses];\n\nexport type StaffPostPostsRegenerateVideosData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/regenerate_videos.json';\n};\n\nexport type StaffPostPostsRegenerateVideosErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsRegenerateVideosError = StaffPostPostsRegenerateVideosErrors[keyof StaffPostPostsRegenerateVideosErrors];\n\nexport type StaffPostPostsRegenerateVideosResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffPostPostsRegenerateVideosResponse = StaffPostPostsRegenerateVideosResponses[keyof StaffPostPostsRegenerateVideosResponses];\n\nexport type StaffPostPostsExpungeData = {\n body?: {\n reason?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/expunge.json';\n};\n\nexport type StaffPostPostsExpungeErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsExpungeError = StaffPostPostsExpungeErrors[keyof StaffPostPostsExpungeErrors];\n\nexport type StaffPostPostsExpungeResponses = {\n /**\n * Success\n */\n 201: {\n post: Post;\n };\n};\n\nexport type StaffPostPostsExpungeResponse = StaffPostPostsExpungeResponses[keyof StaffPostPostsExpungeResponses];\n\nexport type StaffPostPostsMoveFavoritesData = {\n body?: {\n /**\n * If not set, nothing will happen.\n */\n commit: 'Submit';\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/move_favorites.json';\n};\n\nexport type StaffPostPostsMoveFavoritesErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffPostPostsMoveFavoritesError = StaffPostPostsMoveFavoritesErrors[keyof StaffPostPostsMoveFavoritesErrors];\n\nexport type StaffPostPostsAiCheckData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/ai_check.json';\n};\n\nexport type StaffPostPostsAiCheckErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostPostsAiCheckError = StaffPostPostsAiCheckErrors[keyof StaffPostPostsAiCheckErrors];\n\nexport type StaffPostPostsPreviousOwnersData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/previous_owners.json';\n};\n\nexport type StaffPostPostsPreviousOwnersErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffPostPostsPreviousOwnersError = StaffPostPostsPreviousOwnersErrors[keyof StaffPostPostsPreviousOwnersErrors];\n\nexport type StaffPostPostsPreviousOwnersResponses = {\n /**\n * Success\n */\n 200: Array<{\n id: number;\n name: string;\n }>;\n};\n\nexport type StaffPostPostsPreviousOwnersResponse = StaffPostPostsPreviousOwnersResponses[keyof StaffPostPostsPreviousOwnersResponses];\n\nexport type StaffPostPostsReownerData = {\n body?: {\n /**\n * Must be a string\n * Name: `name`\n * ID: `!1234`\n *\n */\n 'reowner[new_owner]': string;\n /**\n * Also reown post versions, must be BD Staff to set to true. (default false)\n */\n 'reowner[reowner_versions]'?: boolean;\n /**\n * Also reown post events, must be BD Staff to set to false. (default true)\n */\n 'reowner[post_events]'?: boolean;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/post/posts/{id}/reowner.json';\n};\n\nexport type StaffPostPostsReownerErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffPostPostsReownerError = StaffPostPostsReownerErrors[keyof StaffPostPostsReownerErrors];\n\nexport type StaffPostPostsReownerResponses = {\n /**\n * Success\n */\n 201: RawPost;\n /**\n * No Change\n */\n 204: void;\n};\n\nexport type StaffPostPostsReownerResponse = StaffPostPostsReownerResponses[keyof StaffPostPostsReownerResponses];\n\nexport type StaffPostApprovalsDestroyData = {\n body?: {\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/staff/post/approval.json';\n};\n\nexport type StaffPostApprovalsDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffPostApprovalsDestroyError = StaffPostApprovalsDestroyErrors[keyof StaffPostApprovalsDestroyErrors];\n\nexport type StaffPostApprovalsDestroyResponses = {\n /**\n * Success/Failure\n */\n 204: void;\n};\n\nexport type StaffPostApprovalsDestroyResponse = StaffPostApprovalsDestroyResponses[keyof StaffPostApprovalsDestroyResponses];\n\nexport type StaffPostApprovalsCreateData = {\n body?: {\n post_id: number;\n };\n path?: never;\n query?: never;\n url: '/staff/post/approval.json';\n};\n\nexport type StaffPostApprovalsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffPostApprovalsCreateError = StaffPostApprovalsCreateErrors[keyof StaffPostApprovalsCreateErrors];\n\nexport type StaffPostApprovalsCreateResponses = {\n /**\n * Success\n */\n 201: {\n [key: string]: never;\n };\n /**\n * Failure\n */\n 204: void;\n};\n\nexport type StaffPostApprovalsCreateResponse = StaffPostApprovalsCreateResponses[keyof StaffPostApprovalsCreateResponses];\n\nexport type StaffUserCleanupsClearAvatarData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/user_cleanups/{id}/clear_avatar.json';\n};\n\nexport type StaffUserCleanupsClearAvatarErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUserCleanupsClearAvatarError = StaffUserCleanupsClearAvatarErrors[keyof StaffUserCleanupsClearAvatarErrors];\n\nexport type StaffUserCleanupsClearProfileData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/user_cleanups/{id}/clear_profile.json';\n};\n\nexport type StaffUserCleanupsClearProfileErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUserCleanupsClearProfileError = StaffUserCleanupsClearProfileErrors[keyof StaffUserCleanupsClearProfileErrors];\n\nexport type StaffUserCleanupsHideCommentsData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/user_cleanups/{id}/hide_comments.json';\n};\n\nexport type StaffUserCleanupsHideCommentsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUserCleanupsHideCommentsError = StaffUserCleanupsHideCommentsErrors[keyof StaffUserCleanupsHideCommentsErrors];\n\nexport type StaffUserCleanupsHideForumPostsData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/user_cleanups/{id}/hide_forum_posts.json';\n};\n\nexport type StaffUserCleanupsHideForumPostsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUserCleanupsHideForumPostsError = StaffUserCleanupsHideForumPostsErrors[keyof StaffUserCleanupsHideForumPostsErrors];\n\nexport type StaffUserCleanupsHideBlipsData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/user_cleanups/{id}/hide_blips.json';\n};\n\nexport type StaffUserCleanupsHideBlipsErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffUserCleanupsHideBlipsError = StaffUserCleanupsHideBlipsErrors[keyof StaffUserCleanupsHideBlipsErrors];\n\nexport type StaffPostDisapprovalsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'post_id' | 'post_id_desc';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[post_id]'?: number;\n 'search[message]'?: string;\n 'search[post_tags_match]'?: string;\n 'search[reason]'?: string;\n 'search[has_message]'?: boolean;\n };\n url: '/staff/post/disapprovals.json';\n};\n\nexport type StaffPostDisapprovalsIndexResponses = {\n /**\n * Success\n */\n 200: Array<PostDisapproval>;\n};\n\nexport type StaffPostDisapprovalsIndexResponse = StaffPostDisapprovalsIndexResponses[keyof StaffPostDisapprovalsIndexResponses];\n\nexport type StaffPostDisapprovalsCreateData = {\n body?: {\n post_id: number;\n reason: 'borderline_quality' | 'borderline_relevancy' | 'other';\n message?: string;\n };\n path?: never;\n query?: never;\n url: '/staff/post/disapprovals.json';\n};\n\nexport type StaffPostDisapprovalsCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffPostDisapprovalsCreateError = StaffPostDisapprovalsCreateErrors[keyof StaffPostDisapprovalsCreateErrors];\n\nexport type StaffPostDisapprovalsCreateResponses = {\n /**\n * Success\n */\n 201: PostDisapproval;\n};\n\nexport type StaffPostDisapprovalsCreateResponse = StaffPostDisapprovalsCreateResponses[keyof StaffPostDisapprovalsCreateResponses];\n\nexport type StaffFilesIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'original_filename' | 'time';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[original_filename]'?: string;\n 'search[file_ext]'?: string;\n };\n url: '/staff/files.json';\n};\n\nexport type StaffFilesIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type StaffFilesIndexError = StaffFilesIndexErrors[keyof StaffFilesIndexErrors];\n\nexport type StaffFilesIndexResponses = {\n /**\n * Success\n */\n 200: Array<StaffFile>;\n};\n\nexport type StaffFilesIndexResponse = StaffFilesIndexResponses[keyof StaffFilesIndexResponses];\n\nexport type StaffFilesCreateData = {\n body?: {\n 'staff_file[file]': Blob | File;\n 'staff_file[title]'?: string;\n 'staff_file[description]'?: string;\n };\n path?: never;\n query?: never;\n url: '/staff/files.json';\n};\n\nexport type StaffFilesCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffFilesCreateError = StaffFilesCreateErrors[keyof StaffFilesCreateErrors];\n\nexport type StaffFilesCreateResponses = {\n /**\n * Success\n */\n 201: StaffFile;\n};\n\nexport type StaffFilesCreateResponse = StaffFilesCreateResponses[keyof StaffFilesCreateResponses];\n\nexport type StaffFilesDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/files/{id}.json';\n};\n\nexport type StaffFilesDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffFilesDestroyError = StaffFilesDestroyErrors[keyof StaffFilesDestroyErrors];\n\nexport type StaffFilesDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffFilesDestroyResponse = StaffFilesDestroyResponses[keyof StaffFilesDestroyResponses];\n\nexport type StaffFilesShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/files/{id}.json';\n};\n\nexport type StaffFilesShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffFilesShowError = StaffFilesShowErrors[keyof StaffFilesShowErrors];\n\nexport type StaffFilesShowResponses = {\n /**\n * Success\n */\n 200: StaffFile;\n};\n\nexport type StaffFilesShowResponse = StaffFilesShowResponses[keyof StaffFilesShowResponses];\n\nexport type StaffFilesUpdateData = {\n body?: {\n 'staff_file[title]'?: string;\n 'staff_file[description]'?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/files/{id}.json';\n};\n\nexport type StaffFilesUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffFilesUpdateError = StaffFilesUpdateErrors[keyof StaffFilesUpdateErrors];\n\nexport type StaffFilesUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffFilesUpdateResponse = StaffFilesUpdateResponses[keyof StaffFilesUpdateResponses];\n\nexport type StaffWikisIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'title';\n 'search[creator_id]'?: number;\n 'search[creator_name]'?: string;\n 'search[title]'?: string;\n 'search[body_matches]'?: string;\n 'search[editor_id]'?: number;\n };\n url: '/staff/wikis.json';\n};\n\nexport type StaffWikisIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type StaffWikisIndexError = StaffWikisIndexErrors[keyof StaffWikisIndexErrors];\n\nexport type StaffWikisIndexResponses = {\n /**\n * Success\n */\n 200: Array<StaffWiki>;\n};\n\nexport type StaffWikisIndexResponse = StaffWikisIndexResponses[keyof StaffWikisIndexResponses];\n\nexport type StaffWikisCreateData = {\n body?: {\n 'staff_wiki[title]': string;\n 'staff_wiki[body]'?: string;\n 'staff_wiki[related_type]'?: 'User' | 'Artist' | 'StaffWiki';\n 'staff_wiki[related_id]'?: number;\n };\n path?: never;\n query?: never;\n url: '/staff/wikis.json';\n};\n\nexport type StaffWikisCreateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffWikisCreateError = StaffWikisCreateErrors[keyof StaffWikisCreateErrors];\n\nexport type StaffWikisCreateResponses = {\n /**\n * Success\n */\n 201: StaffWiki;\n};\n\nexport type StaffWikisCreateResponse = StaffWikisCreateResponses[keyof StaffWikisCreateResponses];\n\nexport type StaffWikisDestroyData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wikis/{id}.json';\n};\n\nexport type StaffWikisDestroyErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffWikisDestroyError = StaffWikisDestroyErrors[keyof StaffWikisDestroyErrors];\n\nexport type StaffWikisDestroyResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffWikisDestroyResponse = StaffWikisDestroyResponses[keyof StaffWikisDestroyResponses];\n\nexport type StaffWikisShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wikis/{id}.json';\n};\n\nexport type StaffWikisShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffWikisShowError = StaffWikisShowErrors[keyof StaffWikisShowErrors];\n\nexport type StaffWikisShowResponses = {\n /**\n * Success\n */\n 200: StaffWiki;\n};\n\nexport type StaffWikisShowResponse = StaffWikisShowResponses[keyof StaffWikisShowResponses];\n\nexport type StaffWikisUpdateData = {\n body?: {\n 'staff_wiki[title]'?: string;\n 'staff_wiki[body]'?: string;\n };\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wikis/{id}.json';\n};\n\nexport type StaffWikisUpdateErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffWikisUpdateError = StaffWikisUpdateErrors[keyof StaffWikisUpdateErrors];\n\nexport type StaffWikisUpdateResponses = {\n /**\n * Success\n */\n 204: void;\n};\n\nexport type StaffWikisUpdateResponse = StaffWikisUpdateResponses[keyof StaffWikisUpdateResponses];\n\nexport type StaffWikisClaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wikis/{id}/claim.json';\n};\n\nexport type StaffWikisClaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffWikisClaimError = StaffWikisClaimErrors[keyof StaffWikisClaimErrors];\n\nexport type StaffWikisClaimResponses = {\n /**\n * Success\n */\n 201: StaffWiki;\n};\n\nexport type StaffWikisClaimResponse = StaffWikisClaimResponses[keyof StaffWikisClaimResponses];\n\nexport type StaffWikisUnclaimData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wikis/{id}/unclaim.json';\n};\n\nexport type StaffWikisUnclaimErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Invalid Input Data\n */\n 422: {\n errors: Array<string>;\n };\n};\n\nexport type StaffWikisUnclaimError = StaffWikisUnclaimErrors[keyof StaffWikisUnclaimErrors];\n\nexport type StaffWikisUnclaimResponses = {\n /**\n * Success\n */\n 201: StaffWiki;\n};\n\nexport type StaffWikisUnclaimResponse = StaffWikisUnclaimResponses[keyof StaffWikisUnclaimResponses];\n\nexport type StaffWikiVersionsIndexData = {\n body?: never;\n path?: never;\n query?: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The page number of results to get. Between 1 and 750.\n */\n page?: number;\n /**\n * Search for a specific id. Multiple can be separated by commas, up to 320.\n */\n 'search[id]'?: string | number;\n 'search[order]'?: 'id_asc' | 'id_desc' | 'title';\n 'search[updater_id]'?: number;\n 'search[updater_name]'?: string;\n 'search[staff_wiki_id]'?: number;\n 'search[title]'?: string;\n 'search[body]'?: string;\n };\n url: '/staff/wiki_versions.json';\n};\n\nexport type StaffWikiVersionsIndexErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n};\n\nexport type StaffWikiVersionsIndexError = StaffWikiVersionsIndexErrors[keyof StaffWikiVersionsIndexErrors];\n\nexport type StaffWikiVersionsIndexResponses = {\n /**\n * Success\n */\n 200: Array<StaffWikiVersion>;\n};\n\nexport type StaffWikiVersionsIndexResponse = StaffWikiVersionsIndexResponses[keyof StaffWikiVersionsIndexResponses];\n\nexport type StaffWikiVersionsShowData = {\n body?: never;\n path: {\n /**\n * The ID of the item.\n */\n id: number;\n };\n query?: never;\n url: '/staff/wiki_versions/{id}.json';\n};\n\nexport type StaffWikiVersionsShowErrors = {\n /**\n * Access Denied\n */\n 403: AccessDeniedResponse;\n /**\n * Not Found\n */\n 404: NotFoundResponse;\n};\n\nexport type StaffWikiVersionsShowError = StaffWikiVersionsShowErrors[keyof StaffWikiVersionsShowErrors];\n\nexport type StaffWikiVersionsShowResponses = {\n /**\n * Success\n */\n 200: StaffWikiVersion;\n};\n\nexport type StaffWikiVersionsShowResponse = StaffWikiVersionsShowResponses[keyof StaffWikiVersionsShowResponses];\n\nexport type StaffVoteTrendsIndexData = {\n body?: never;\n path?: never;\n query: {\n /**\n * The maximum number of results to return. Between 0 and 320.\n */\n limit?: number;\n /**\n * The name or ID of the user. IDs must be prefixed with `!`.\n */\n user: string | number;\n /**\n * Boolean, must be `1` for true (casted to integer, checked `== 0`).\n */\n disable_vote_normality?: number;\n threshold?: number;\n /**\n * days\n */\n duration?: number;\n };\n url: '/staff/vote_trends.json';\n};\n\nexport type StaffVoteTrendsIndexResponses = {\n /**\n * 2D array: first item VoteTrend, second item score\n */\n 200: Array<VoteTrend | Array<number>>;\n};\n\nexport type StaffVoteTrendsIndexResponse = StaffVoteTrendsIndexResponses[keyof StaffVoteTrendsIndexResponses];\n", "// This file is auto-generated by @hey-api/openapi-ts\n\nexport const AccessDeniedResponseSchema = {\n type: 'object',\n required: [\n 'success',\n 'reason'\n ],\n properties: {\n success: {\n type: 'boolean'\n },\n reason: {\n type: 'string',\n enum: [\n 'Access Denied'\n ]\n }\n }\n} as const;\n\nexport const NotFoundResponseSchema = {\n type: 'object',\n required: [\n 'success',\n 'reason'\n ],\n properties: {\n success: {\n type: 'boolean'\n },\n reason: {\n type: 'string',\n enum: [\n 'not found'\n ]\n }\n }\n} as const;\n\nexport const WarningRecordTypeSchema = {\n type: 'object',\n required: [\n 'record_type'\n ],\n properties: {\n record_type: {\n type: 'string',\n enum: [\n 'unmark',\n 'ban',\n 'record',\n 'warning'\n ]\n }\n }\n} as const;\n\nexport const ModActionActionsSchema = {\n type: 'string',\n enum: [\n 'admin_user_delete',\n 'artist_page_rename',\n 'artist_page_lock',\n 'artist_page_unlock',\n 'artist_user_linked',\n 'artist_user_unlinked',\n 'avoid_posting_create',\n 'avoid_posting_update',\n 'avoid_posting_delete',\n 'avoid_posting_undelete',\n 'avoid_posting_destroy',\n 'staff_note_create',\n 'staff_note_update',\n 'staff_note_delete',\n 'staff_note_undelete',\n 'blip_destroy',\n 'blip_delete',\n 'blip_undelete',\n 'blip_update',\n 'comment_delete',\n 'comment_hide',\n 'comment_unhide',\n 'comment_update',\n 'forum_category_create',\n 'forum_category_delete',\n 'forum_category_update',\n 'forum_post_delete',\n 'forum_post_hide',\n 'forum_post_unhide',\n 'forum_post_update',\n 'forum_topic_delete',\n 'forum_topic_hide',\n 'forum_topic_unhide',\n 'forum_topic_lock',\n 'forum_topic_unlock',\n 'forum_topic_stick',\n 'forum_topic_unstick',\n 'forum_topic_update',\n 'help_create',\n 'help_delete',\n 'help_update',\n 'ip_ban_create',\n 'ip_ban_delete',\n 'search_trend_blacklist_create',\n 'search_trend_blacklist_update',\n 'search_trend_blacklist_delete',\n 'search_trend_blacklist_purge',\n 'mascot_create',\n 'mascot_update',\n 'mascot_delete',\n 'staff_file_create',\n 'staff_file_update',\n 'staff_file_delete',\n 'pool_delete',\n 'report_reason_create',\n 'report_reason_delete',\n 'report_reason_update',\n 'set_update',\n 'set_delete',\n 'set_change_visibility',\n 'tag_destroy',\n 'tag_alias_create',\n 'tag_alias_update',\n 'tag_implication_create',\n 'tag_implication_update',\n 'ticket_claim',\n 'ticket_unclaim',\n 'ticket_update',\n 'appeal_claim',\n 'appeal_unclaim',\n 'appeal_update',\n 'upload_whitelist_create',\n 'upload_whitelist_update',\n 'upload_whitelist_delete',\n 'user_avatar_clear',\n 'user_profile_clear',\n 'user_comments_hide',\n 'user_forum_posts_hide',\n 'user_blips_delete',\n 'user_blacklist_changed',\n 'user_text_change',\n 'user_custom_title_change',\n 'user_upload_limit_change',\n 'user_uploads_toggle',\n 'user_flags_change',\n 'user_level_change',\n 'user_name_change',\n 'user_delete',\n 'user_ban',\n 'user_ban_update',\n 'user_unban',\n 'user_feedback_create',\n 'user_feedback_update',\n 'user_feedback_delete',\n 'user_feedback_undelete',\n 'user_feedback_destroy',\n 'user_flush_favorites',\n 'wiki_page_rename',\n 'wiki_page_delete',\n 'wiki_page_lock',\n 'wiki_page_unlock',\n 'mass_update',\n 'nuke_tag',\n 'takedown_delete',\n 'takedown_process',\n 'post_version_hide',\n 'post_version_unhide',\n 'created_positive_record',\n 'created_neutral_record',\n 'created_negative_record',\n 'created_flag_reason',\n 'edited_flag_reason',\n 'deleted_flag_reason',\n 'post_move_favorites',\n 'post_delete',\n 'post_undelete',\n 'post_destroy',\n 'post_rating_lock',\n 'post_unapprove',\n 'post_replacement_accept',\n 'post_replacement_reject',\n 'post_replacement_delete'\n ]\n} as const;\n\nexport const PostEventActionsSchema = {\n type: 'string',\n enum: [\n 'deleted',\n 'undeleted',\n 'approved',\n 'unapproved',\n 'flag_created',\n 'flag_removed',\n 'favorites_moved',\n 'favorites_received',\n 'rating_locked',\n 'rating_unlocked',\n 'status_locked',\n 'status_unlocked',\n 'note_locked',\n 'note_unlocked',\n 'comment_locked',\n 'comment_unlocked',\n 'replacement_accepted',\n 'replacement_rejected',\n 'replacement_promoted',\n 'replacement_deleted',\n 'expunged',\n 'changed_bg_color',\n 'replacement_penalty_changed',\n 'owner_changed'\n ]\n} as const;\n\nexport const RatingsSchema = {\n type: 'string',\n enum: [\n 's',\n 'q',\n 'e'\n ]\n} as const;\n\nexport const TagCategoriesSchema = {\n type: 'integer',\n enum: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8\n ]\n} as const;\n\nexport const FeedbackCategoriesSchema = {\n type: 'string',\n enum: [\n 'negative',\n 'neutral',\n 'positive'\n ]\n} as const;\n\nexport const TagRequestStatusesSchema = {\n oneOf: [\n {\n type: 'string',\n enum: [\n 'active',\n 'deleted',\n 'processing',\n 'queued',\n 'retired',\n 'pending'\n ]\n },\n {\n type: 'string',\n pattern: '^error: .*$'\n }\n ]\n} as const;\n\nexport const WarningTypesSchema = {\n type: 'string',\n enum: [\n 'warning',\n 'record',\n 'ban'\n ]\n} as const;\n\nexport const PoolCategoriesSchema = {\n type: 'string',\n enum: [\n 'collection',\n 'series'\n ]\n} as const;\n\nexport const TicketTypesSchema = {\n type: 'string',\n enum: [\n 'blip',\n 'comment',\n 'dmail',\n 'forum',\n 'pool',\n 'post',\n 'set',\n 'user',\n 'wiki',\n 'replacement'\n ]\n} as const;\n\nexport const TicketStatusesSchema = {\n type: 'string',\n enum: [\n 'pending',\n 'partial',\n 'approved'\n ]\n} as const;\n\nexport const ArtistSchema = {\n type: 'object',\n required: [\n 'id',\n 'name',\n 'updated_at',\n 'is_active',\n 'other_names',\n 'group_name',\n 'linked_user_id',\n 'created_at',\n 'creator_id',\n 'is_locked',\n 'notes',\n 'urls'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n is_active: {\n type: 'boolean'\n },\n other_names: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n group_name: {\n type: 'string'\n },\n linked_user_id: {\n type: 'integer',\n nullable: true\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_id: {\n type: 'integer'\n },\n is_locked: {\n type: 'boolean'\n },\n notes: {\n type: 'string',\n nullable: true\n }\n }\n} as const;\n\nexport const ArtistUrlSchema = {\n type: 'object',\n required: [\n 'id',\n 'artist_id',\n 'url',\n 'normalized_url',\n 'created_at',\n 'updated_at',\n 'is_active'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n artist_id: {\n type: 'integer'\n },\n url: {\n type: 'string',\n format: 'uri'\n },\n normalized_url: {\n type: 'string',\n format: 'uri'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n is_active: {\n type: 'boolean'\n }\n }\n} as const;\n\nexport const ArtistVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'artist_id',\n 'name',\n 'updater_id',\n 'created_at',\n 'updated_at',\n 'is_active',\n 'other_names',\n 'notes_changed',\n 'urls'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n artist_id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n updater_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n is_active: {\n type: 'boolean'\n },\n other_names: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n notes_changed: {\n type: 'boolean'\n },\n urls: {\n type: 'array',\n items: {\n type: 'string',\n format: 'uri'\n }\n }\n }\n} as const;\n\nexport const AvoidPostingSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'updater_id',\n 'artist_id',\n 'details',\n 'is_active',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n artist_id: {\n type: 'integer'\n },\n staff_notes: {\n type: 'string',\n description: 'Only visible to Staff+'\n },\n details: {\n type: 'string'\n },\n is_active: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const AvoidPostingVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'updater_id',\n 'avoid_posting_id',\n 'details',\n 'is_active',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n avoid_posting_id: {\n type: 'integer'\n },\n details: {\n type: 'string'\n },\n staff_notes: {\n type: 'string',\n description: 'Only visible to Staff+'\n },\n is_active: {\n type: 'boolean'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const BanSchema = {\n type: 'object',\n required: [\n 'id',\n 'user_id',\n 'reason',\n 'expires_at',\n 'banner_id',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n reason: {\n type: 'string'\n },\n expires_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n banner_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const BlipSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'body',\n 'response_to',\n 'created_at',\n 'updated_at',\n 'is_deleted',\n 'warning_type',\n 'warning_user_id',\n 'updater_id',\n 'creator_name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n response_to: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string'\n },\n is_deleted: {\n type: 'boolean'\n },\n warning_type: {\n $ref: '#/components/schemas/WarningTypes'\n },\n warning_user_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n creator_name: {\n type: 'string'\n }\n }\n} as const;\n\nexport const BulkRelatedTagSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/RelatedTag'\n },\n {\n type: 'object',\n required: [\n 'count'\n ],\n properties: {\n count: {\n type: 'integer'\n }\n }\n }\n ]\n} as const;\n\nexport const BulkUpdateRequestSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'forum_topic_id',\n 'script',\n 'status',\n 'created_at',\n 'updated_at',\n 'approver_id',\n 'forum_post_id',\n 'title'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n forum_topic_id: {\n type: 'integer',\n nullable: true\n },\n script: {\n type: 'string',\n example: [\n 'alias a -> b'\n ]\n },\n status: {\n type: 'string',\n enum: [\n 'approved',\n 'rejected',\n 'pending'\n ]\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n approver_id: {\n type: 'integer',\n nullable: true\n },\n forum_post_id: {\n type: 'integer',\n nullable: true\n },\n title: {\n type: 'string'\n }\n }\n} as const;\n\nexport const CommentSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'post_id',\n 'creator_id',\n 'body',\n 'score',\n 'updated_at',\n 'updater_id',\n 'do_not_bump_post',\n 'is_hidden',\n 'is_sticky',\n 'warning_type',\n 'warning_user_id',\n 'creator_name',\n 'updater_name',\n 'vote'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n post_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n score: {\n type: 'integer'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n updater_id: {\n type: 'integer'\n },\n do_not_bump_post: {\n type: 'boolean',\n deprecated: true\n },\n is_hidden: {\n type: 'boolean'\n },\n is_sticky: {\n type: 'boolean'\n },\n warning_type: {\n $ref: '#/components/schemas/WarningTypes'\n },\n warning_user_id: {\n type: 'integer',\n nullable: true\n },\n creator_name: {\n type: 'string'\n },\n updater_name: {\n type: 'string'\n },\n vote: {\n type: 'integer',\n enum: [\n -1,\n 0,\n 1\n ]\n }\n }\n} as const;\n\nexport const CurrentUserSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/User'\n },\n {\n type: 'object',\n required: [\n 'blacklist_users',\n 'description_collapsed_initially',\n 'hide_comments',\n 'show_hidden_comments',\n 'show_post_statistics',\n 'receive_email_notifications',\n 'enable_keyboard_navigation',\n 'enable_privacy_mode',\n 'style_usernames',\n 'enable_auto_complete',\n 'disable_cropped_thumbnails',\n 'enable_safe_mode',\n 'disable_responsive_mode',\n 'no_flagging',\n 'disable_user_dmails',\n 'enable_compact_uploader',\n 'replacements_beta',\n 'updated_at',\n 'email',\n 'last_logged_in_at',\n 'last_forum_read_at',\n 'recent_tags',\n 'comment_threshold',\n 'default_image_size',\n 'favorite_tags',\n 'blacklisted_tags',\n 'time_zone',\n 'per_page',\n 'custom_style',\n 'favorite_count',\n 'api_regen_multiplier',\n 'api_burst_limit',\n 'remaining_api_limit',\n 'statement_timeout',\n 'favorite_limit',\n 'tag_query_limit',\n 'has_mail',\n 'forum_notification_dot'\n ],\n properties: {\n blacklist_users: {\n type: 'boolean'\n },\n description_collapsed_initially: {\n type: 'boolean'\n },\n hide_comments: {\n type: 'boolean'\n },\n show_hidden_comments: {\n type: 'boolean'\n },\n show_post_statistics: {\n type: 'boolean'\n },\n receive_email_notifications: {\n type: 'boolean'\n },\n enable_keyboard_navigation: {\n type: 'boolean'\n },\n enable_privacy_mode: {\n type: 'boolean'\n },\n style_usernames: {\n type: 'boolean'\n },\n enable_auto_complete: {\n type: 'boolean'\n },\n can_approve_posts: {\n type: 'boolean'\n },\n disable_cropped_thumbnails: {\n type: 'boolean'\n },\n enable_safe_mode: {\n type: 'boolean'\n },\n disable_responsive_mode: {\n type: 'boolean'\n },\n no_flagging: {\n type: 'boolean'\n },\n disable_user_dmails: {\n type: 'boolean'\n },\n enable_compact_uploader: {\n type: 'boolean'\n },\n replacements_beta: {\n type: 'boolean'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n email: {\n type: 'string'\n },\n last_logged_in_at: {\n type: 'string',\n format: 'date-time'\n },\n last_forum_read_at: {\n type: 'string',\n format: 'date-time'\n },\n recent_tags: {\n type: 'string'\n },\n comment_threshold: {\n type: 'integer'\n },\n default_image_size: {\n type: 'string',\n enum: [\n 'large',\n 'fit',\n 'fitv',\n 'original'\n ]\n },\n favorite_tags: {\n type: 'string'\n },\n blacklisted_tags: {\n type: 'string'\n },\n time_zone: {\n type: 'string'\n },\n per_page: {\n type: 'integer'\n },\n custom_style: {\n type: 'string'\n },\n favorite_count: {\n type: 'integer'\n },\n api_regen_multiplier: {\n type: 'integer'\n },\n api_burst_limit: {\n type: 'integer'\n },\n remaining_api_limit: {\n type: 'integer'\n },\n statement_timeout: {\n type: 'integer'\n },\n favorite_limit: {\n type: 'integer'\n },\n tag_query_limit: {\n type: 'integer'\n },\n has_mail: {\n type: 'boolean'\n },\n forum_notification_dot: {\n type: 'boolean'\n }\n }\n }\n ]\n} as const;\n\nexport const DMailSchema = {\n type: 'object',\n required: [\n 'id',\n 'owner_id',\n 'from_id',\n 'to_id',\n 'title',\n 'body',\n 'is_read',\n 'is_deleted',\n 'created_at',\n 'updated_at',\n 'to_name',\n 'from_name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n owner_id: {\n type: 'integer'\n },\n from_id: {\n type: 'integer'\n },\n to_id: {\n type: 'integer'\n },\n title: {\n type: 'string'\n },\n body: {\n type: 'string'\n },\n is_read: {\n type: 'boolean'\n },\n is_deleted: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n to_name: {\n type: 'string'\n },\n from_name: {\n type: 'string'\n }\n }\n} as const;\n\nexport const DeferredPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'flags',\n 'tags',\n 'rating',\n 'file_ext',\n 'width',\n 'height',\n 'size',\n 'created_at',\n 'uploader',\n 'uploader_id',\n 'score',\n 'fav_count',\n 'is_favorited',\n 'pools',\n 'md5',\n 'preview_url',\n 'large_url',\n 'file_url',\n 'preview_width',\n 'preview_height'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n flags: {\n type: 'string'\n },\n tags: {\n type: 'string'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n file_ext: {\n type: 'string'\n },\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n size: {\n type: 'integer',\n format: 'int64'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n uploader: {\n type: 'string'\n },\n uploader_id: {\n type: 'integer'\n },\n score: {\n type: 'integer'\n },\n fav_count: {\n type: 'integer'\n },\n is_favorited: {\n type: 'boolean'\n },\n pools: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n md5: {\n type: 'string'\n },\n preview_url: {\n type: 'string',\n nullable: true\n },\n large_url: {\n type: 'string',\n nullable: true\n },\n file_url: {\n type: 'string',\n nullable: true\n },\n preview_width: {\n type: 'integer'\n },\n preview_height: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const DTextResponseSchema = {\n type: 'object',\n required: [\n 'html',\n 'posts'\n ],\n properties: {\n html: {\n type: 'string'\n },\n posts: {\n $ref: '#/components/schemas/DeferredPost'\n }\n }\n} as const;\n\nexport const EmailBlacklistSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'domain',\n 'creator_id',\n 'reason'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string'\n },\n updated_at: {\n type: 'string'\n },\n domain: {\n type: 'string'\n },\n creator_id: {\n type: 'string'\n },\n reason: {\n type: 'string'\n }\n }\n} as const;\n\nexport const ForumPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'topic_id',\n 'creator_id',\n 'updater_id',\n 'body',\n 'is_hidden',\n 'created_at',\n 'updated_at',\n 'warning_type',\n 'warning_user_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n topic_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n is_hidden: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n warning_type: {\n $ref: '#/components/schemas/WarningTypes'\n },\n warning_user_id: {\n type: 'integer',\n nullable: true\n }\n }\n} as const;\n\nexport const ForumPostVoteSchema = {\n type: 'object',\n required: [\n 'id',\n 'forum_post_id',\n 'creator_id',\n 'score',\n 'created_at',\n 'updated_at',\n 'creator_name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n forum_post_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n score: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_name: {\n type: 'string'\n }\n }\n} as const;\n\nexport const ForumTopicSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'updater_id',\n 'title',\n 'response_count',\n 'is_sticky',\n 'is_locked',\n 'is_hidden',\n 'created_at',\n 'updated_at',\n 'category_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n title: {\n type: 'string'\n },\n response_count: {\n type: 'integer'\n },\n is_sticky: {\n type: 'boolean'\n },\n is_locked: {\n type: 'boolean'\n },\n is_hidden: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n category_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const FullCurrentUserSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/CurrentUser'\n },\n {\n $ref: '#/components/schemas/FullUser'\n }\n ]\n} as const;\n\nexport const FullUserSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/User'\n },\n {\n type: 'object',\n required: [\n 'wiki_page_version_count',\n 'artist_version_count',\n 'pool_version_count',\n 'forum_post_count',\n 'comment_count',\n 'flag_count',\n 'favorite_count',\n 'positive_feedback_count',\n 'neutral_feedback_count',\n 'negative_feedback_count',\n 'upload_limit',\n 'profile_about',\n 'profile_artinfo'\n ],\n properties: {\n wiki_page_version_count: {\n type: 'integer'\n },\n artist_version_count: {\n type: 'integer'\n },\n pool_version_count: {\n type: 'integer'\n },\n forum_post_count: {\n type: 'integer'\n },\n comment_count: {\n type: 'integer'\n },\n flag_count: {\n type: 'integer'\n },\n favorite_count: {\n type: 'integer'\n },\n positive_feedback_count: {\n type: 'integer'\n },\n neutral_feedback_count: {\n type: 'integer'\n },\n negative_feedback_count: {\n type: 'integer'\n },\n upload_limit: {\n type: 'integer'\n },\n profile_about: {\n type: 'string'\n },\n profile_artinfo: {\n type: 'string'\n }\n }\n }\n ]\n} as const;\n\nexport const HelpPageSchema = {\n type: 'object',\n required: [\n 'id',\n 'name',\n 'title',\n 'wiki_page',\n 'related',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n title: {\n type: 'string'\n },\n wiki_page: {\n type: 'string'\n },\n related: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const IpBanSchema = {\n type: 'object',\n description: 'Due to a global filter, the ip_addr is not present no matter your user level.',\n required: [\n 'id',\n 'creator_id',\n 'reason',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n reason: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const IqdbPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'up_score',\n 'down_score',\n 'score',\n 'source',\n 'md5',\n 'rating',\n 'is_note_locked',\n 'is_rating_locked',\n 'is_status_locked',\n 'is_pending',\n 'is_flagged',\n 'is_deleted',\n 'uploader_id',\n 'approver_id',\n 'last_noted_at',\n 'last_comment_bumped_at',\n 'fav_count',\n 'tag_string',\n 'tag_count',\n 'tag_count_general',\n 'tag_count_artist',\n 'tag_count_character',\n 'tag_count_copyright',\n 'file_ext',\n 'file_size',\n 'image_width',\n 'image_height',\n 'parent_id',\n 'has_children',\n 'last_commented_at',\n 'has_active_children',\n 'bit_flags',\n 'tag_count_meta',\n 'locked_tags',\n 'tag_count_species',\n 'tag_count_invalid',\n 'description',\n 'comment_count',\n 'change_seq',\n 'tag_count_lore',\n 'bg_color',\n 'generated_samples',\n 'duration',\n 'is_comment_disabled',\n 'is_comment_locked',\n 'has_large',\n 'has_visible_children',\n 'children_ids',\n 'pool_ids',\n 'is_favorited'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n up_score: {\n type: 'integer'\n },\n down_score: {\n type: 'integer'\n },\n score: {\n type: 'integer'\n },\n source: {\n type: 'string'\n },\n md5: {\n type: 'string'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n is_note_locked: {\n type: 'boolean'\n },\n is_rating_locked: {\n type: 'boolean'\n },\n is_status_locked: {\n type: 'boolean'\n },\n is_pending: {\n type: 'boolean'\n },\n is_flagged: {\n type: 'boolean'\n },\n is_deleted: {\n type: 'boolean'\n },\n uploader_id: {\n type: 'integer'\n },\n approver_id: {\n type: 'integer'\n },\n last_noted_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n last_comment_bumped_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n fav_count: {\n type: 'integer'\n },\n tag_string: {\n type: 'string'\n },\n tag_count: {\n type: 'integer'\n },\n tag_count_general: {\n type: 'integer'\n },\n tag_count_artist: {\n type: 'integer'\n },\n tag_count_character: {\n type: 'integer'\n },\n tag_count_copyright: {\n type: 'integer'\n },\n file_ext: {\n type: 'string'\n },\n file_size: {\n type: 'integer',\n format: 'int64'\n },\n image_width: {\n type: 'integer'\n },\n image_height: {\n type: 'integer'\n },\n parent_id: {\n type: 'integer',\n nullable: true\n },\n has_children: {\n type: 'boolean'\n },\n last_commented_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n has_active_children: {\n type: 'boolean'\n },\n bit_flags: {\n type: 'integer'\n },\n tag_count_meta: {\n type: 'integer'\n },\n locked_tags: {\n type: 'string',\n nullable: true\n },\n tag_count_species: {\n type: 'integer'\n },\n tag_count_invalid: {\n type: 'integer'\n },\n description: {\n type: 'string'\n },\n comment_count: {\n type: 'integer'\n },\n change_seq: {\n type: 'integer'\n },\n tag_count_lore: {\n type: 'integer'\n },\n bg_color: {\n type: 'string',\n nullable: true\n },\n generated_samples: {\n type: 'array',\n nullable: true,\n items: {\n type: 'string',\n enum: [\n '720p',\n '480p',\n 'original'\n ]\n }\n },\n duration: {\n type: 'string',\n nullable: true\n },\n is_comment_disabled: {\n type: 'boolean'\n },\n is_comment_locked: {\n type: 'boolean'\n },\n has_large: {\n type: 'boolean'\n },\n has_visible_children: {\n type: 'boolean'\n },\n children_ids: {\n type: 'string',\n nullable: true\n },\n pool_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n is_favorited: {\n type: 'boolean'\n },\n file_url: {\n type: 'string'\n },\n large_file_url: {\n type: 'string'\n },\n preview_file_url: {\n type: 'string'\n }\n }\n} as const;\n\nexport const RawPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'up_score',\n 'down_score',\n 'score',\n 'source',\n 'md5',\n 'rating',\n 'is_note_locked',\n 'is_rating_locked',\n 'is_status_locked',\n 'is_pending',\n 'is_flagged',\n 'is_deleted',\n 'uploader_id',\n 'approver_id',\n 'last_noted_at',\n 'last_comment_bumped_at',\n 'fav_count',\n 'tag_string',\n 'tag_count',\n 'tag_count_general',\n 'tag_count_artist',\n 'tag_count_character',\n 'tag_count_copyright',\n 'file_ext',\n 'file_size',\n 'image_width',\n 'image_height',\n 'parent_id',\n 'has_children',\n 'last_commented_at',\n 'has_active_children',\n 'bit_flags',\n 'tag_count_meta',\n 'locked_tags',\n 'tag_count_species',\n 'tag_count_invalid',\n 'description',\n 'comment_count',\n 'change_seq',\n 'tag_count_lore',\n 'bg_color',\n 'generated_samples',\n 'duration',\n 'is_comment_disabled',\n 'is_comment_locked',\n 'has_large',\n 'has_visible_children',\n 'children_ids',\n 'pool_ids',\n 'is_favorited'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n up_score: {\n type: 'integer'\n },\n down_score: {\n type: 'integer'\n },\n score: {\n type: 'integer'\n },\n source: {\n type: 'string'\n },\n md5: {\n type: 'string'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n is_note_locked: {\n type: 'boolean'\n },\n is_rating_locked: {\n type: 'boolean'\n },\n is_status_locked: {\n type: 'boolean'\n },\n is_pending: {\n type: 'boolean'\n },\n is_flagged: {\n type: 'boolean'\n },\n is_deleted: {\n type: 'boolean'\n },\n uploader_id: {\n type: 'integer'\n },\n approver_id: {\n type: 'integer'\n },\n last_noted_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n last_comment_bumped_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n fav_count: {\n type: 'integer'\n },\n tag_string: {\n type: 'string'\n },\n tag_count: {\n type: 'integer'\n },\n tag_count_general: {\n type: 'integer'\n },\n tag_count_artist: {\n type: 'integer'\n },\n tag_count_character: {\n type: 'integer'\n },\n tag_count_copyright: {\n type: 'integer'\n },\n file_ext: {\n type: 'string'\n },\n file_size: {\n type: 'integer',\n format: 'int64'\n },\n image_width: {\n type: 'integer'\n },\n image_height: {\n type: 'integer'\n },\n parent_id: {\n type: 'integer',\n nullable: true\n },\n has_children: {\n type: 'boolean'\n },\n last_commented_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n has_active_children: {\n type: 'boolean'\n },\n bit_flags: {\n type: 'integer'\n },\n tag_count_meta: {\n type: 'integer'\n },\n locked_tags: {\n type: 'string',\n nullable: true\n },\n tag_count_species: {\n type: 'integer'\n },\n tag_count_invalid: {\n type: 'integer'\n },\n description: {\n type: 'string'\n },\n comment_count: {\n type: 'integer'\n },\n change_seq: {\n type: 'integer'\n },\n tag_count_lore: {\n type: 'integer'\n },\n bg_color: {\n type: 'string',\n nullable: true\n },\n generated_samples: {\n type: 'array',\n nullable: true,\n items: {\n type: 'string',\n enum: [\n '720p',\n '480p',\n 'original'\n ]\n }\n },\n duration: {\n type: 'string',\n nullable: true\n },\n is_comment_disabled: {\n type: 'boolean'\n },\n is_comment_locked: {\n type: 'boolean'\n },\n has_large: {\n type: 'boolean'\n },\n has_visible_children: {\n type: 'boolean'\n },\n children_ids: {\n type: 'string',\n nullable: true\n },\n pool_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n is_favorited: {\n type: 'boolean'\n },\n file_url: {\n type: 'string'\n },\n large_file_url: {\n type: 'string'\n },\n preview_file_url: {\n type: 'string'\n }\n }\n} as const;\n\nexport const IqdbResponseSchema = {\n type: 'object',\n required: [\n 'hash',\n 'post_id',\n 'score',\n 'post'\n ],\n properties: {\n hash: {\n type: 'string'\n },\n post_id: {\n type: 'integer'\n },\n score: {\n type: 'number',\n format: 'float',\n minimum: 0,\n maximum: 100\n },\n post: {\n type: 'object',\n required: [\n 'posts'\n ],\n properties: {\n posts: {\n $ref: '#/components/schemas/IqdbPost'\n }\n }\n }\n }\n} as const;\n\nexport const MascotSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'display_name',\n 'md5',\n 'file_ext',\n 'background_color',\n 'artist_url',\n 'artist_name',\n 'active',\n 'created_at',\n 'updated_at',\n 'available_on',\n 'url_path'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n display_name: {\n type: 'string'\n },\n md5: {\n type: 'string'\n },\n file_ext: {\n type: 'string'\n },\n background_color: {\n type: 'string'\n },\n artist_url: {\n type: 'string',\n format: 'uri'\n },\n artist_name: {\n type: 'string'\n },\n active: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n available_on: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n url_path: {\n type: 'string',\n format: 'uri'\n }\n }\n} as const;\n\nexport const ModActionSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'created_at',\n 'updated_at',\n 'action'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n action: {\n $ref: '#/components/schemas/ModActionActions'\n }\n }\n} as const;\n\nexport const NewsUpdateSchema = {\n type: 'object',\n required: [\n 'id',\n 'message',\n 'creator_id',\n 'updater_id',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n message: {\n type: 'string'\n },\n creator_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const NoteSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'creator_id',\n 'x',\n 'y',\n 'width',\n 'height',\n 'version',\n 'is_active',\n 'post_id',\n 'body',\n 'creator_name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_id: {\n type: 'integer'\n },\n x: {\n type: 'integer'\n },\n y: {\n type: 'integer'\n },\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n version: {\n type: 'integer'\n },\n is_active: {\n type: 'boolean'\n },\n post_id: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n creator_name: {\n type: 'string'\n }\n }\n} as const;\n\nexport const NoteVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'x',\n 'y',\n 'width',\n 'height',\n 'body',\n 'version',\n 'is_active',\n 'note_id',\n 'post_id',\n 'updater_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n x: {\n type: 'integer'\n },\n y: {\n type: 'integer'\n },\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n version: {\n type: 'integer'\n },\n is_active: {\n type: 'boolean'\n },\n note_id: {\n type: 'integer'\n },\n post_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const PoolSchema = {\n type: 'object',\n required: [\n 'id',\n 'name',\n 'created_at',\n 'updated_at',\n 'creator_id',\n 'description',\n 'is_active',\n 'category',\n 'post_ids',\n 'creator_name',\n 'post_count'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_id: {\n type: 'integer'\n },\n description: {\n type: 'string'\n },\n is_active: {\n type: 'boolean'\n },\n category: {\n $ref: '#/components/schemas/PoolCategories'\n },\n post_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_name: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const PoolVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'pool_id',\n 'post_ids',\n 'updater_id',\n 'created_at',\n 'updated_at',\n 'name',\n 'name_changed',\n 'description',\n 'description_changed',\n 'is_active',\n 'is_locked',\n 'category',\n 'version',\n 'added_post_ids',\n 'removed_post_ids'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n pool_id: {\n type: 'integer'\n },\n post_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n updater_id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n name_changed: {\n type: 'boolean'\n },\n description: {\n type: 'string'\n },\n description_changed: {\n type: 'boolean'\n },\n is_active: {\n type: 'boolean'\n },\n is_locked: {\n type: 'boolean'\n },\n category: {\n $ref: '#/components/schemas/PoolCategories'\n },\n version: {\n type: 'integer'\n },\n added_post_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n removed_post_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n} as const;\n\nexport const PostSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'change_seq',\n 'files',\n 'uploader_id',\n 'uploader_name',\n 'approver_id',\n 'stats',\n 'flags',\n 'has',\n 'relationships',\n 'pools',\n 'rating',\n 'locked_tags',\n 'sources',\n 'description',\n 'tags'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n change_seq: {\n type: 'integer'\n },\n files: {\n type: 'object',\n required: [\n 'meta',\n 'original',\n 'preview',\n 'sample'\n ],\n properties: {\n meta: {\n type: 'object',\n required: [\n 'md5',\n 'ext',\n 'size',\n 'duration',\n 'has_sample'\n ],\n properties: {\n md5: {\n type: 'string'\n },\n ext: {\n type: 'string'\n },\n size: {\n type: 'integer',\n format: 'int64'\n },\n duration: {\n type: 'number',\n format: 'float',\n nullable: true\n },\n has_sample: {\n type: 'boolean'\n }\n }\n },\n original: {\n type: 'object',\n required: [\n 'width',\n 'height',\n 'url'\n ],\n properties: {\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n url: {\n type: 'string',\n format: 'uri',\n nullable: true\n }\n }\n },\n preview: {\n type: 'object',\n required: [\n 'width',\n 'height',\n 'jpg',\n 'webp'\n ],\n properties: {\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n jpg: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n webp: {\n type: 'string',\n format: 'uri',\n nullable: true\n }\n }\n },\n sample: {\n type: 'object',\n required: [\n 'width',\n 'height',\n 'jpg',\n 'webp'\n ],\n properties: {\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n jpg: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n webp: {\n type: 'string',\n format: 'uri',\n nullable: true\n }\n }\n }\n }\n },\n uploader_id: {\n type: 'integer'\n },\n uploader_name: {\n type: 'string'\n },\n approver_id: {\n type: 'integer',\n nullable: true\n },\n stats: {\n type: 'object',\n required: [\n 'score',\n 'fav_count',\n 'is_favorited',\n 'vote',\n 'comment_count'\n ],\n properties: {\n score: {\n type: 'object',\n required: [\n 'up',\n 'down',\n 'total'\n ],\n properties: {\n up: {\n type: 'integer'\n },\n down: {\n type: 'integer'\n },\n total: {\n type: 'integer'\n }\n }\n },\n fav_count: {\n type: 'integer'\n },\n is_favorited: {\n type: 'boolean'\n },\n vote: {\n $ref: '#/components/schemas/Comment/properties/vote'\n },\n comment_count: {\n type: 'integer'\n }\n }\n },\n flags: {\n type: 'object',\n required: [\n 'pending',\n 'flagged',\n 'note_locked',\n 'status_locked',\n 'rating_locked',\n 'deleted'\n ],\n properties: {\n pending: {\n type: 'boolean'\n },\n flagged: {\n type: 'boolean'\n },\n note_locked: {\n type: 'boolean'\n },\n status_locked: {\n type: 'boolean'\n },\n rating_locked: {\n type: 'boolean'\n },\n deleted: {\n type: 'boolean'\n }\n }\n },\n has: {\n type: 'object',\n required: [\n 'parent',\n 'children',\n 'active_children',\n 'notes',\n 'sample'\n ],\n properties: {\n parent: {\n type: 'boolean'\n },\n children: {\n type: 'boolean'\n },\n active_children: {\n type: 'boolean'\n },\n notes: {\n type: 'boolean'\n },\n sample: {\n type: 'boolean'\n }\n }\n },\n relationships: {\n type: 'object',\n required: [\n 'parent_id',\n 'children'\n ],\n properties: {\n parent_id: {\n type: 'integer',\n nullable: true\n },\n children: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n },\n pools: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n locked_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n sources: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n description: {\n type: 'string'\n }\n }\n} as const;\n\nexport const PostApprovalSchema = {\n type: 'object',\n required: [\n 'id',\n 'user_id',\n 'post_id',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n post_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const PostDisapprovalSchema = {\n type: 'object',\n required: [\n 'id',\n 'user_id',\n 'post_id',\n 'reason',\n 'message',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n post_id: {\n type: 'integer'\n },\n reason: {\n type: 'string',\n enum: [\n 'borderline_quality',\n 'borderline_relevancy',\n 'other'\n ]\n },\n message: {\n type: 'string',\n nullable: true\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const PostEventSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'post_id',\n 'action',\n 'created_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer',\n nullable: true\n },\n post_id: {\n type: 'integer'\n },\n action: {\n $ref: '#/components/schemas/PostEventActions'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const PostFlagSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'post_id',\n 'reason',\n 'is_resolved',\n 'updated_at',\n 'is_deletion',\n 'type'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n post_id: {\n type: 'integer'\n },\n reason: {\n type: 'string'\n },\n creator_id: {\n type: 'integer',\n description: 'Only visible to creator and Janitor+',\n nullable: true\n },\n is_resolved: {\n type: 'boolean'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n is_deletion: {\n type: 'boolean'\n },\n type: {\n type: 'string',\n enum: [\n 'flag',\n 'deletion'\n ]\n },\n note: {\n type: 'string',\n description: 'Only visible to creator and Janitor+',\n nullable: true\n }\n }\n} as const;\n\nexport const PostReplacementSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'post_id',\n 'creator_id',\n 'approver_id',\n 'file_ext',\n 'file_size',\n 'image_height',\n 'image_width',\n 'md5',\n 'source',\n 'file_name',\n 'status',\n 'reason'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n post_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n approver_id: {\n type: 'integer',\n nullable: true\n },\n file_ext: {\n type: 'string'\n },\n file_size: {\n type: 'integer',\n format: 'int64'\n },\n image_height: {\n type: 'integer'\n },\n image_width: {\n type: 'integer'\n },\n md5: {\n type: 'string'\n },\n source: {\n type: 'string'\n },\n file_name: {\n type: 'string'\n },\n status: {\n type: 'string',\n enum: [\n 'prompted',\n 'approved',\n 'rejected',\n 'pending',\n 'original'\n ]\n },\n reason: {\n type: 'string'\n }\n }\n} as const;\n\nexport const PostSampleAlternateSchema = {\n type: 'object',\n required: [\n 'fps',\n 'codec',\n 'size',\n 'width',\n 'height',\n 'url'\n ],\n properties: {\n fps: {\n type: 'number',\n format: 'float'\n },\n codec: {\n type: 'string'\n },\n size: {\n type: 'integer',\n format: 'int64'\n },\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n url: {\n type: 'string',\n format: 'uri'\n }\n }\n} as const;\n\nexport const PostSetSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'creator_id',\n 'is_public',\n 'name',\n 'shortname',\n 'description',\n 'transfer_on_delete',\n 'post_ids',\n 'post_count'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n creator_id: {\n type: 'integer'\n },\n is_public: {\n type: 'boolean'\n },\n name: {\n type: 'string'\n },\n shortname: {\n type: 'string'\n },\n description: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n },\n transfer_on_delete: {\n type: 'boolean'\n },\n post_ids: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n} as const;\n\nexport const PostVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'post_id',\n 'tags',\n 'updater_id',\n 'updated_at',\n 'rating',\n 'parent_id',\n 'source',\n 'description',\n 'reason',\n 'locked_tags',\n 'added_tags',\n 'removed_tags',\n 'added_locked_tags',\n 'removed_locked_tags',\n 'rating_changed',\n 'parent_changed',\n 'source_changed',\n 'description_changed',\n 'version',\n 'obsolete_added_tags',\n 'obsolete_removed_tags',\n 'unchanged_tags',\n 'updater_name',\n 'is_hidden'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n post_id: {\n type: 'integer'\n },\n tags: {\n type: 'string'\n },\n updater_id: {\n type: 'integer'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n parent_id: {\n type: 'integer',\n nullable: true\n },\n source: {\n type: 'string'\n },\n description: {\n type: 'string'\n },\n reason: {\n type: 'string',\n nullable: true\n },\n locked_tags: {\n type: 'string',\n nullable: true\n },\n added_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n removed_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n added_locked_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n removed_locked_tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n rating_changed: {\n type: 'boolean'\n },\n parent_changed: {\n type: 'boolean'\n },\n source_changed: {\n type: 'boolean'\n },\n description_changed: {\n type: 'boolean'\n },\n version: {\n type: 'integer'\n },\n obsolete_added_tags: {\n type: 'string'\n },\n obsolete_removed_tags: {\n type: 'string'\n },\n unchanged_tags: {\n type: 'string'\n },\n updater_name: {\n type: 'string'\n },\n is_hidden: {\n type: 'boolean'\n }\n }\n} as const;\n\nexport const RelatedTagSchema = {\n type: 'object',\n required: [\n 'name',\n 'category_id'\n ],\n properties: {\n name: {\n type: 'string'\n },\n category_id: {\n $ref: '#/components/schemas/TagCategories'\n }\n }\n} as const;\n\nexport const StaffNoteSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'user_id',\n 'creator_id',\n 'body',\n 'is_deleted',\n 'updater_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n user_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n body: {\n type: 'string'\n },\n is_deleted: {\n type: 'boolean'\n },\n updater_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const TagSchema = {\n type: 'object',\n required: [\n 'id',\n 'name',\n 'post_count',\n 'related_tags',\n 'related_tags_updated_at',\n 'category',\n 'is_locked',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n },\n related_tags: {\n type: 'string'\n },\n related_tags_updated_at: {\n type: 'string',\n nullable: true,\n format: 'date-time'\n },\n category: {\n $ref: '#/components/schemas/TagCategories'\n },\n is_locked: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const TagAliasSchema = {\n type: 'object',\n required: [\n 'id',\n 'antecedent_name',\n 'reason',\n 'creator_id',\n 'created_at',\n 'forum_post_id',\n 'updated_at',\n 'forum_topic_id',\n 'consequent_name',\n 'status',\n 'post_count',\n 'approver_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n antecedent_name: {\n type: 'string'\n },\n reason: {\n type: 'string'\n },\n creator_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n nullable: true,\n format: 'date-time'\n },\n forum_post_id: {\n type: 'integer',\n nullable: true\n },\n updated_at: {\n type: 'string',\n nullable: true,\n format: 'date-time'\n },\n forum_topic_id: {\n type: 'integer',\n nullable: true\n },\n consequent_name: {\n type: 'string'\n },\n status: {\n $ref: '#/components/schemas/TagRequestStatuses'\n },\n post_count: {\n type: 'integer'\n },\n approver_id: {\n type: 'integer',\n nullable: true\n }\n }\n} as const;\n\nexport const TagImplicationSchema = {\n type: 'object',\n required: [\n 'id',\n 'reason',\n 'creator_id',\n 'created_at',\n 'forum_post_id',\n 'antecedent_name',\n 'consequent_name',\n 'status',\n 'forum_topic_id',\n 'updated_at',\n 'descendant_names',\n 'approver_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n reason: {\n type: 'string'\n },\n creator_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n forum_post_id: {\n type: 'integer',\n nullable: true\n },\n antecedent_name: {\n type: 'string'\n },\n consequent_name: {\n type: 'string'\n },\n status: {\n $ref: '#/components/schemas/TagRequestStatuses'\n },\n forum_topic_id: {\n type: 'integer',\n nullable: true\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n descendant_names: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n approver_id: {\n type: 'integer',\n nullable: true\n }\n }\n} as const;\n\nexport const TagPreviewSchema = {\n type: 'object',\n required: [\n 'name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n resolved: {\n type: 'string'\n },\n category: {\n $ref: '#/components/schemas/TagCategories'\n },\n post_count: {\n type: 'integer'\n },\n alias: {\n type: 'string'\n },\n implies: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n} as const;\n\nexport const TagTypeVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'old_type',\n 'new_type',\n 'is_locked',\n 'tag_id',\n 'creator_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n old_type: {\n $ref: '#/components/schemas/TagCategories'\n },\n new_type: {\n $ref: '#/components/schemas/TagCategories'\n },\n is_locked: {\n type: 'boolean'\n },\n tag_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const TakedownSchema = {\n type: 'object',\n required: [\n 'id',\n 'status',\n 'approver_id',\n 'reason_hidden',\n 'created_at',\n 'updated_at',\n 'post_count'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n status: {\n type: 'string',\n enum: [\n 'approved',\n 'denied',\n 'partial',\n 'pending'\n ]\n },\n approver_id: {\n type: 'integer',\n nullable: true\n },\n reason_hidden: {\n type: 'boolean'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n post_count: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const TicketSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'reason',\n 'disp_id',\n 'qtype',\n 'status',\n 'created_at',\n 'updated_at',\n 'response',\n 'handler_id',\n 'report_reason',\n 'accused_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n reason: {\n type: 'string'\n },\n disp_id: {\n type: 'integer'\n },\n qtype: {\n $ref: '#/components/schemas/TicketTypes'\n },\n status: {\n $ref: '#/components/schemas/TicketStatuses'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n response: {\n type: 'string'\n },\n handler_id: {\n type: 'integer',\n nullable: true\n },\n claimant_id: {\n type: 'integer',\n nullable: true,\n description: 'Only visible to Moderator+.'\n },\n report_reason: {\n type: 'string',\n nullable: true\n },\n accused_id: {\n type: 'integer',\n nullable: true\n }\n }\n} as const;\n\nexport const UploadWhitelistSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'pattern',\n 'note',\n 'hidden',\n 'allowed',\n 'reason',\n 'domain',\n 'path'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n pattern: {\n type: 'string'\n },\n note: {\n type: 'string'\n },\n hidden: {\n type: 'boolean'\n },\n allowed: {\n type: 'boolean'\n },\n reason: {\n type: 'string'\n },\n domain: {\n type: 'string'\n },\n path: {\n type: 'string'\n }\n }\n} as const;\n\nexport const UploadSchema = {\n type: 'object',\n required: [\n 'id',\n 'source',\n 'rating',\n 'uploader_id',\n 'tag_string',\n 'status',\n 'backtrace',\n 'post_id',\n 'md5_confirmation',\n 'created_at',\n 'updated_at',\n 'parent_id',\n 'md5',\n 'file_ext',\n 'file_size',\n 'image_width',\n 'image_height',\n 'description',\n 'uploader_name'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n source: {\n type: 'string'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n uploader_id: {\n type: 'integer'\n },\n tag_string: {\n type: 'string'\n },\n status: {\n type: 'string',\n description: 'Note: The \"error\" status will be proceeded by an error, ex: \"error: RuntimeError - No file or source URL provided\"\\n',\n enum: [\n 'completed',\n 'duplicate',\n 'error',\n 'processing',\n 'pending'\n ]\n },\n backtrace: {\n type: 'string',\n nullable: true\n },\n post_id: {\n type: 'integer',\n nullable: true\n },\n md5_confirmation: {\n type: 'string',\n nullable: true,\n deprecated: true\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n parent_id: {\n type: 'integer',\n nullable: true\n },\n md5: {\n type: 'string',\n nullable: true\n },\n file_ext: {\n type: 'string',\n nullable: true\n },\n file_size: {\n type: 'integer',\n nullable: true\n },\n image_width: {\n type: 'integer',\n nullable: true\n },\n image_height: {\n type: 'integer',\n nullable: true\n },\n description: {\n type: 'string'\n },\n uploader_name: {\n type: 'string'\n }\n }\n} as const;\n\nexport const UserSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'name',\n 'level',\n 'base_upload_limit',\n 'post_upload_count',\n 'post_update_count',\n 'note_update_count',\n 'is_banned',\n 'can_approve_posts',\n 'can_upload_free',\n 'level_string',\n 'avatar_id',\n 'has_cropped_avatar'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n name: {\n type: 'string'\n },\n level: {\n $ref: '#/components/schemas/UserLevels'\n },\n base_upload_limit: {\n type: 'integer'\n },\n post_upload_count: {\n type: 'integer'\n },\n post_update_count: {\n type: 'integer'\n },\n note_update_count: {\n type: 'integer'\n },\n is_banned: {\n type: 'boolean'\n },\n can_approve_posts: {\n type: 'boolean'\n },\n can_upload_free: {\n type: 'boolean'\n },\n level_string: {\n $ref: '#/components/schemas/UserLevelsNames'\n },\n avatar_id: {\n type: 'integer',\n nullable: true\n },\n is_verified: {\n type: 'boolean'\n },\n has_cropped_avatar: {\n type: 'boolean'\n },\n last_logged_in_at: {\n type: 'string',\n format: 'date-time',\n description: 'Only visible to Admin+.'\n }\n }\n} as const;\n\nexport const UserFeedbackSchema = {\n type: 'object',\n required: [\n 'id',\n 'user_id',\n 'creator_id',\n 'category',\n 'body',\n 'created_at',\n 'updated_at',\n 'updater_id',\n 'is_deleted'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n category: {\n $ref: '#/components/schemas/FeedbackCategories'\n },\n body: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n updater_id: {\n type: 'integer'\n },\n is_deleted: {\n type: 'boolean'\n }\n }\n} as const;\n\nexport const UserNameChangeRequestSchema = {\n type: 'object',\n required: [\n 'id',\n 'approver_id',\n 'user_id',\n 'original_name',\n 'desired_name',\n 'created_at',\n 'updated_at',\n 'status'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n approver_id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n original_name: {\n type: 'string'\n },\n desired_name: {\n type: 'string'\n },\n change_reason: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n status: {\n type: 'string',\n enum: [\n 'approved'\n ]\n }\n }\n} as const;\n\nexport const WikiPageSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'title',\n 'body',\n 'creator_id',\n 'is_locked',\n 'updater_id',\n 'is_deleted',\n 'other_names',\n 'parent',\n 'creator_name',\n 'category_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n title: {\n type: 'string'\n },\n body: {\n type: 'string'\n },\n creator_id: {\n type: 'integer'\n },\n is_locked: {\n type: 'boolean'\n },\n updater_id: {\n type: 'integer'\n },\n is_deleted: {\n type: 'boolean'\n },\n other_names: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n parent: {\n type: 'string',\n nullable: true\n },\n creator_name: {\n type: 'string'\n },\n category_id: {\n $ref: '#/components/schemas/TagCategories'\n },\n featured_posts: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n} as const;\n\nexport const WikiPageVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'title',\n 'body',\n 'updater_id',\n 'wiki_page_id',\n 'is_locked',\n 'other_names',\n 'is_deleted',\n 'reason',\n 'parent'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n title: {\n type: 'string'\n },\n body: {\n type: 'string'\n },\n updater_id: {\n type: 'integer'\n },\n wiki_page_id: {\n type: 'integer'\n },\n is_locked: {\n type: 'boolean'\n },\n other_names: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n is_deleted: {\n type: 'boolean'\n },\n reason: {\n type: 'string',\n nullable: true\n },\n parent: {\n type: 'string',\n nullable: true\n },\n featured_posts: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n} as const;\n\nexport const ApiKeySchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'user_id',\n 'key',\n 'name',\n 'last_used_at',\n 'last_used_ip_address',\n 'last_user_agent',\n 'expires_at',\n 'notified_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n user_id: {\n type: 'integer'\n },\n key: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n last_used_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n last_used_ip_address: {\n oneOf: [\n {\n type: 'string',\n format: 'ipv4',\n nullable: true\n },\n {\n type: 'string',\n format: 'ipv6',\n nullable: true\n }\n ]\n },\n last_user_agent: {\n type: 'string',\n nullable: true\n },\n expires_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n },\n notified_at: {\n type: 'string',\n format: 'date-time',\n nullable: true\n }\n }\n} as const;\n\nexport const EditHistorySchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'body',\n 'subject',\n 'versionable_type',\n 'versionable_id',\n 'version',\n 'user_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n body: {\n type: 'string'\n },\n subject: {\n type: 'string',\n nullable: true\n },\n versionable_type: {\n type: 'string',\n enum: [\n 'Blip',\n 'Comment',\n 'ForumPost'\n ]\n },\n versionable_id: {\n type: 'integer'\n },\n version: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const UserAvatarMenuSchema = {\n type: 'object',\n required: [\n 'has_uploads',\n 'has_favorites',\n 'has_sets',\n 'has_comments',\n 'has_forums'\n ],\n properties: {\n has_uploads: {\n type: 'boolean'\n },\n has_favorites: {\n type: 'boolean'\n },\n has_sets: {\n type: 'boolean'\n },\n has_comments: {\n type: 'boolean'\n },\n has_forums: {\n type: 'boolean'\n }\n }\n} as const;\n\nexport const TagCorrectionSchema = {\n type: 'object',\n required: [\n 'post_count',\n 'real_post_count',\n 'category',\n 'category_cache',\n 'tag'\n ],\n properties: {\n post_count: {\n type: 'integer'\n },\n real_post_count: {\n type: 'integer'\n },\n category: {\n $ref: '#/components/schemas/TagCategories'\n },\n category_cache: {\n $ref: '#/components/schemas/TagCategories'\n },\n tag: {\n $ref: '#/components/schemas/Tag'\n }\n }\n} as const;\n\nexport const SearchTrendSchema = {\n type: 'object',\n required: [\n 'tag',\n 'count',\n 'day'\n ],\n properties: {\n tag: {\n type: 'string'\n },\n count: {\n type: 'integer'\n },\n day: {\n type: 'string',\n format: 'date'\n }\n }\n} as const;\n\nexport const RisingSearchTrendSchema = {\n type: 'object',\n required: [\n 'name',\n 'pretty_name',\n 'post_count',\n 'category'\n ],\n properties: {\n name: {\n type: 'string'\n },\n pretty_name: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n },\n category: {\n $ref: '#/components/schemas/TagCategories'\n }\n }\n} as const;\n\nexport const SearchTrendBlacklistSchema = {\n type: 'object',\n required: [\n 'id',\n 'tag',\n 'reason',\n 'creator_id',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n tag: {\n type: 'string'\n },\n reason: {\n type: 'string'\n },\n creator_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const MessageErrorResponseSchema = {\n type: 'object',\n required: [\n 'success',\n 'message'\n ],\n properties: {\n success: {\n type: 'boolean'\n },\n message: {\n type: 'string'\n },\n code: {\n type: 'string',\n nullable: true\n }\n }\n} as const;\n\nexport const MessageSuccessResponseSchema = {\n type: 'object',\n required: [\n 'success',\n 'message'\n ],\n properties: {\n success: {\n type: 'boolean',\n enum: [\n true\n ]\n },\n message: {\n type: 'string'\n }\n }\n} as const;\n\nexport const PostRecommendationSchema = {\n type: 'object',\n required: [\n 'post_id',\n 'score',\n 'explanation'\n ],\n properties: {\n post_id: {\n type: 'integer'\n },\n score: {\n type: 'number',\n format: 'float'\n },\n explanation: {\n type: 'string',\n nullable: true\n }\n }\n} as const;\n\nexport const RecommendedPostsSchema = {\n type: 'object',\n required: [\n 'post_id',\n 'model_version',\n 'results',\n 'post_data'\n ],\n properties: {\n post_id: {\n type: 'integer'\n },\n model_version: {\n type: 'string'\n },\n results: {\n type: 'array',\n items: {\n $ref: '#/components/schemas/PostRecommendation'\n }\n }\n }\n} as const;\n\nexport const PostVoteSchema = {\n type: 'object',\n required: [\n 'id',\n 'post_id',\n 'user_id',\n 'score',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n post_id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n score: {\n $ref: '#/components/schemas/UpDownVote'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const UpDownVoteSchema = {\n type: 'integer',\n enum: [\n 1,\n -1\n ]\n} as const;\n\nexport const UpDownMehVoteSchema = {\n type: 'integer',\n enum: [\n 1,\n 0,\n -1\n ]\n} as const;\n\nexport const MinimalUserSchema = {\n type: 'object',\n required: [\n 'id',\n 'name',\n 'level_string',\n 'favorite_count'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n name: {\n type: 'string'\n },\n level_string: {\n $ref: '#/components/schemas/UserLevelsNames'\n },\n favorite_count: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const ThumbnailPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'md5',\n 'file_ext',\n 'width',\n 'height',\n 'size',\n 'preview_url',\n 'preview_webp',\n 'sample_url',\n 'file_url',\n 'preview_width',\n 'preview_height',\n 'uploader_id',\n 'uploader',\n 'score',\n 'fav_count',\n 'is_favorited',\n 'vote',\n 'comment_count',\n 'flags',\n 'pools',\n 'rating',\n 'tags'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n md5: {\n type: 'string'\n },\n file_ext: {\n type: 'string'\n },\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n size: {\n type: 'integer',\n format: 'int64'\n },\n preview_url: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n preview_webp: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n sample_url: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n file_url: {\n type: 'string',\n format: 'uri',\n nullable: true\n },\n preview_width: {\n type: 'integer'\n },\n preview_height: {\n type: 'integer'\n },\n uploader_id: {\n type: 'integer'\n },\n uploader: {\n type: 'string'\n },\n score: {\n type: 'integer'\n },\n fav_count: {\n type: 'integer'\n },\n is_favorited: {\n type: 'boolean'\n },\n vote: {\n $ref: '#/components/schemas/Comment/properties/vote'\n },\n comment_count: {\n type: 'integer'\n },\n flags: {\n type: 'string',\n description: 'space separated list of flags:\\n- pending\\n- flagged\\n- deleted\\n'\n },\n pools: {\n type: 'string',\n description: 'space separated list of ids'\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n tags: {\n type: 'string'\n }\n }\n} as const;\n\nexport const PostDataSchema = {\n type: 'object',\n required: [\n 'post_data'\n ],\n properties: {\n post_data: {\n type: 'array',\n items: {\n $ref: '#/components/schemas/ThumbnailPost'\n }\n }\n }\n} as const;\n\nexport const CommentVoteSchema = {\n type: 'object',\n required: [\n 'id',\n 'comment_id',\n 'user_id',\n 'score',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n comment_id: {\n type: 'integer'\n },\n user_id: {\n type: 'integer'\n },\n score: {\n $ref: '#/components/schemas/UpDownVote'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const LegacyPostSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'file',\n 'preview',\n 'sample',\n 'score',\n 'tags',\n 'locked_tags',\n 'change_seq',\n 'flags',\n 'rating',\n 'fav_count',\n 'sources',\n 'pools',\n 'relationships',\n 'approver_id',\n 'uploader_id',\n 'description',\n 'comment_count',\n 'is_favorited',\n 'has_notes',\n 'duration',\n 'uploader_name',\n 'vote'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n file: {\n type: 'object',\n required: [\n 'width',\n 'height',\n 'ext',\n 'size',\n 'md5',\n 'url'\n ],\n properties: {\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n ext: {\n type: 'string'\n },\n size: {\n type: 'integer',\n format: 'int64'\n },\n md5: {\n type: 'string'\n },\n url: {\n type: 'string',\n nullable: true\n }\n }\n },\n preview: {\n type: 'object',\n required: [\n 'width',\n 'height',\n 'url'\n ],\n properties: {\n width: {\n type: 'integer'\n },\n height: {\n type: 'integer'\n },\n url: {\n type: 'string',\n nullable: true\n }\n }\n },\n sample: {\n type: 'object',\n required: [\n 'has',\n 'height',\n 'width',\n 'url',\n 'alternates'\n ],\n properties: {\n has: {\n type: 'boolean'\n },\n height: {\n type: 'integer',\n nullable: true\n },\n width: {\n type: 'integer',\n nullable: true\n },\n url: {\n type: 'string',\n nullable: true\n },\n alternates: {\n type: 'object',\n properties: {\n has: {\n type: 'boolean'\n },\n original: {\n $ref: '#/components/schemas/PostSampleAlternate'\n },\n variants: {\n type: 'object',\n properties: {\n webm: {\n $ref: '#/components/schemas/PostSampleAlternate'\n },\n mp4: {\n $ref: '#/components/schemas/PostSampleAlternate'\n }\n }\n },\n samples: {\n type: 'object',\n properties: {\n '480p': {\n $ref: '#/components/schemas/PostSampleAlternate'\n },\n '720p': {\n $ref: '#/components/schemas/PostSampleAlternate'\n }\n }\n }\n }\n }\n }\n },\n score: {\n type: 'object',\n required: [\n 'up',\n 'down',\n 'total'\n ],\n properties: {\n up: {\n type: 'integer'\n },\n down: {\n type: 'integer'\n },\n total: {\n type: 'integer'\n }\n }\n },\n tags: {\n type: 'object',\n required: [\n 'general',\n 'artist',\n 'copyright',\n 'character',\n 'species',\n 'invalid',\n 'meta',\n 'lore',\n 'contributor'\n ],\n properties: {\n general: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n artist: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n copyright: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n character: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n species: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n invalid: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n meta: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n lore: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n contributor: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n locked_tags: {\n type: 'array',\n nullable: true,\n items: {\n type: 'string'\n }\n },\n change_seq: {\n type: 'integer'\n },\n flags: {\n type: 'object',\n required: [\n 'pending',\n 'flagged',\n 'note_locked',\n 'status_locked',\n 'rating_locked',\n 'deleted'\n ],\n properties: {\n pending: {\n type: 'boolean'\n },\n flagged: {\n type: 'boolean'\n },\n note_locked: {\n type: 'boolean'\n },\n status_locked: {\n type: 'boolean'\n },\n rating_locked: {\n type: 'boolean'\n },\n deleted: {\n type: 'boolean'\n }\n }\n },\n rating: {\n $ref: '#/components/schemas/Ratings'\n },\n fav_count: {\n type: 'integer'\n },\n sources: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n pools: {\n type: 'array',\n items: {\n type: 'integer'\n }\n },\n relationships: {\n type: 'object',\n required: [\n 'parent_id',\n 'has_children',\n 'has_active_children',\n 'children'\n ],\n properties: {\n parent_id: {\n type: 'integer',\n nullable: true\n },\n has_children: {\n type: 'boolean'\n },\n has_active_children: {\n type: 'boolean'\n },\n children: {\n type: 'array',\n items: {\n type: 'integer'\n }\n }\n }\n },\n approver_id: {\n type: 'integer',\n nullable: true\n },\n uploader_id: {\n type: 'integer'\n },\n description: {\n type: 'string'\n },\n comment_count: {\n type: 'integer'\n },\n is_favorited: {\n type: 'boolean'\n },\n has_notes: {\n type: 'boolean'\n },\n duration: {\n type: 'number',\n format: 'float',\n nullable: true\n },\n uploader_name: {\n type: 'string'\n },\n vote: {\n $ref: '#/components/schemas/Comment/properties/vote'\n }\n }\n} as const;\n\nexport const BasicPostSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/Post'\n },\n {\n type: 'object',\n required: [\n 'tags'\n ],\n properties: {\n tags: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n }\n ]\n} as const;\n\nexport const ExtendedPostSchema = {\n allOf: [\n {\n $ref: '#/components/schemas/Post'\n },\n {\n type: 'object',\n required: [\n 'tags'\n ],\n properties: {\n tags: {\n type: 'object',\n required: [\n 'general',\n 'artist',\n 'contributor',\n 'copyright',\n 'character',\n 'species',\n 'invalid',\n 'meta',\n 'lore'\n ],\n properties: {\n general: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n artist: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n contributor: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n copyright: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n character: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n species: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n invalid: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n meta: {\n type: 'array',\n items: {\n type: 'string'\n }\n },\n lore: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n }\n }\n }\n ]\n} as const;\n\nexport const ExceptionLogSchema = {\n type: 'object',\n required: [\n 'id',\n 'created_at',\n 'updated_at',\n 'class_name',\n 'version',\n 'extra_params',\n 'message',\n 'trace',\n 'code',\n 'user_id'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n class_name: {\n type: 'string'\n },\n version: {\n type: 'string'\n },\n extra_params: {\n type: 'object'\n },\n message: {\n type: 'string'\n },\n trace: {\n type: 'string'\n },\n code: {\n type: 'string',\n format: 'uuid'\n },\n user_id: {\n type: 'integer'\n }\n }\n} as const;\n\nexport const AppealSchema = {\n type: 'object',\n required: [\n 'id',\n 'disp_id',\n 'qtype',\n 'status',\n 'handler_id',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n disp_id: {\n type: 'string'\n },\n qtype: {\n type: 'string',\n enum: [\n 'flag'\n ]\n },\n status: {\n type: 'string',\n enum: [\n 'pending',\n 'partial',\n 'approved',\n 'rejected'\n ]\n },\n reason: {\n type: 'string'\n },\n response: {\n type: 'string'\n },\n claimant_id: {\n type: 'integer',\n nullable: true\n },\n handler_id: {\n type: 'integer',\n nullable: true\n },\n accused_id: {\n type: 'integer'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const DBExportSchema = {\n type: 'object',\n required: [\n 'name',\n 'file_name',\n 'file_size',\n 'updated_at',\n 'url',\n 'checksum'\n ],\n properties: {\n name: {\n $ref: '#/components/schemas/DBExportNames'\n },\n file_name: {\n type: 'string'\n },\n file_size: {\n type: 'integer'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n },\n url: {\n type: 'string',\n format: 'uri'\n },\n checksum: {\n type: 'string',\n description: 'SHA-256'\n }\n }\n} as const;\n\nexport const DBExportNamesSchema = {\n type: 'string',\n enum: [\n 'artists',\n 'bulk_update_requests',\n 'pools',\n 'post_replacements',\n 'posts',\n 'post_versions',\n 'tag_aliases',\n 'tag_implications',\n 'tags',\n 'wiki_pages'\n ]\n} as const;\n\nexport const UserLevelsSchema = {\n type: 'integer',\n enum: [\n 0,\n 10,\n 20,\n 30,\n 40,\n 50,\n 60,\n 70,\n 80\n ]\n} as const;\n\nexport const UserLevelsNamesSchema = {\n type: 'string',\n enum: [\n 'Anonymous',\n 'Blocked',\n 'Member',\n 'Privileged',\n 'Former Staff',\n 'Staff',\n 'Janitor',\n 'Moderator',\n 'Admin'\n ]\n} as const;\n\nexport const StaffFileSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'storage_id',\n 'md5',\n 'file_ext',\n 'file_size',\n 'original_filename',\n 'title',\n 'description',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n storage_id: {\n type: 'string'\n },\n md5: {\n type: 'string'\n },\n file_ext: {\n type: 'string'\n },\n file_size: {\n type: 'integer'\n },\n original_filename: {\n type: 'string'\n },\n title: {\n type: 'string'\n },\n description: {\n type: 'string',\n nullable: true\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const StaffWikiSchema = {\n type: 'object',\n required: [\n 'id',\n 'creator_id',\n 'updater_id',\n 'claimant_id',\n 'title',\n 'body',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n creator_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n claimant_id: {\n type: 'integer',\n nullable: true\n },\n title: {\n type: 'string'\n },\n body: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const StaffWikiVersionSchema = {\n type: 'object',\n required: [\n 'id',\n 'staff_wiki_id',\n 'updater_id',\n 'claimant_id',\n 'title',\n 'body',\n 'created_at',\n 'updated_at'\n ],\n properties: {\n id: {\n type: 'integer'\n },\n staff_wiki_id: {\n type: 'integer'\n },\n updater_id: {\n type: 'integer'\n },\n claimant_id: {\n type: 'integer',\n nullable: true\n },\n title: {\n type: 'string'\n },\n body: {\n type: 'string'\n },\n created_at: {\n type: 'string',\n format: 'date-time'\n },\n updated_at: {\n type: 'string',\n format: 'date-time'\n }\n }\n} as const;\n\nexport const VoteTrendSchema = {\n oneOf: [\n {\n $ref: '#/components/schemas/Tag'\n },\n {\n $ref: '#/components/schemas/VoteTrendMetatag'\n },\n {\n $ref: '#/components/schemas/VoteTrendUploader'\n }\n ]\n} as const;\n\nexport const VoteTrendMetatagSchema = {\n type: 'object',\n required: [\n 'name',\n 'post_count',\n 'uploader_id',\n 'uploader'\n ],\n properties: {\n name: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n },\n uploader_id: {\n type: 'integer',\n nullable: true,\n enum: [\n null\n ]\n },\n uploader: {\n type: 'object',\n nullable: true,\n enum: [\n null\n ]\n }\n }\n} as const;\n\nexport const VoteTrendUploaderSchema = {\n type: 'object',\n required: [\n 'name',\n 'post_count',\n 'uploader_id',\n 'uploader'\n ],\n properties: {\n name: {\n type: 'string'\n },\n post_count: {\n type: 'integer'\n },\n uploader_id: {\n type: 'integer'\n },\n uploader: {\n $ref: '#/components/schemas/User'\n }\n }\n} as const;\n", "import { createE621Client } from \"./client.js\";\nimport { apply, type Modules } from \"./modules/index.js\";\nimport { type NoV2Options, type PostFormatOptions } from \"./modules/posts/Format.js\";\n\nimport type { InstanceOptions, Options } from \"./client.js\";\nimport type { Client } from \"./generated/client/types.js\";\n\nexport type * from \"./modules/index.js\";\nexport * from \"./models/index.js\";\nexport * from \"./errors.js\";\nexport * as Generated from \"./generated.js\";\nexport type { Options } from \"./client.js\";\n\ninterface E621<PF extends PostFormatOptions = NoV2Options> extends Modules<PF> {}\n/** @category Main */\nclass E621<const PF extends PostFormatOptions = NoV2Options> {\n client: Client;\n options: InstanceOptions;\n constructor(options?: Options<PF>) {\n const { client, options: resolved } = createE621Client(options);\n this.client = client;\n this.options = resolved;\n apply(this, this.client, options?.defaultPostFormat ?? ({} as PF));\n }\n}\n\nexport default E621;\n"],
|
|
5
|
+
"mappings": "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ADhB,OAAO,aAAa;GACf,WAAW;AA0DjB,IAAA,sBAAe;;;ACzEf;;;;;;;;;ACAA;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM,6BAA6B;EACtC,MAAM;EACN,UAAU;IACN;IACA;;EAEJ,YAAY;IACR,SAAS;MACL,MAAM;;IAEV,QAAQ;MACJ,MAAM;MACN,MAAM;QACF;;;;;AAMT,IAAM,yBAAyB;EAClC,MAAM;EACN,UAAU;IACN;IACA;;EAEJ,YAAY;IACR,SAAS;MACL,MAAM;;IAEV,QAAQ;MACJ,MAAM;MACN,MAAM;QACF;;;;;AAMT,IAAM,0BAA0B;EACnC,MAAM;EACN,UAAU;IACN;;EAEJ,YAAY;IACR,aAAa;MACT,MAAM;MACN,MAAM;QACF;QACA;QACA;QACA;;;;;AAMT,IAAM,yBAAyB;EAClC,MAAM;EACN,MAAM;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAID,IAAM,yBAAyB;EAClC,MAAM;EACN,MAAM;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAID,IAAM,gBAAgB;EACzB,MAAM;EACN,MAAM;IACF;IACA;IACA;;;AAID,IAAM,sBAAsB;EAC/B,MAAM;EACN,MAAM;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAID,IAAM,2BAA2B;EACpC,MAAM;EACN,MAAM;IACF;IACA;IACA;;;AAID,IAAM,2BAA2B;EACpC,OAAO;IACH;MACI,MAAM;MACN,MAAM;QACF;QACA;QACA;QACA;QACA;QACA;;;IAGR;MACI,MAAM;MACN,SAAS;;;;AAKd,IAAM,qBAAqB;EAC9B,MAAM;EACN,MAAM;IACF;IACA;IACA;;;AAID,IAAM,uBAAuB;EAChC,MAAM;EACN,MAAM;IACF;IACA;;;AAID,IAAM,oBAAoB;EAC7B,MAAM;EACN,MAAM;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;AAID,IAAM,uBAAuB;EAChC,MAAM;EACN,MAAM;IACF;IACA;IACA;;;AAID,IAAM,eAAe;EACxB,MAAM;EACN,UAAU;IACN;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEJ,YAAY;IACR,IAAI;MACA,MAAM;;IAEV,MAAM;MACF,MAAM;;IAEV,YAAY;MACR,MAAM;MACN,QAAQ;;IAEZ,WAAW;MACP,MAAM;;IAEV,aAAa;MACT,MAAM;MACN,OAAO;QACH,MAAM;;;IAGd,YAAY;MACR,MAAM;;IAEV,gBAAgB;MACZ,MAAM;MACN,UAAU;;IAEd,YAAY;MACR,MAAM;MACN,QAAQ;;IAEZ,YAAY;MACR,MAAM;;IAEV,WAAW;MACP,MAAM;;IAEV,OAAO;MACH,MAAM;MACN,UAAU;;;;AAKf,IAAM,kBAAkB;EAC3B,MAAM;EACN,UAAU;IACN;IACA;IACA;IACA;IACA;IACA;IACA;;EAEJ,YAAY;IACR,IAAI;MACA,MAAM;;IA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",
|
|
6
|
+
"names": ["joinedValues", "config", "request", "url", "Appeal", "Base", "client", "Base", "Artist", "Base", "ArtistUrl", "Base", "ArtistVersion", "Base", "AvoidPosting", "Base", "AvoidPostingVersion", "Base", "Ban", "Base", "Blip", "Base", "BulkUpdateRequest", "Base", "Comment", "Base", "DBExport", "Base", "DMail", "Base", "EditHistory", "Base", "EmailBlacklist", "Base", "BasicPost", "ExtendedPost", "Post", "ThumbnailPost", "Base", "client", "_a", "ForumPost", "Base", "ForumTopic", "Base", "Base", "HelpPage", "Base", "IpBan", "Base", "IqdbPost", "Base", "client", "_a", "_b", "Mascot", "Base", "ModAction", "Base", "NewsUpdate", "Base", "Note", "Base", "NoteVersion", "Base", "Pool", "Base", "PoolVersion", "Base", "MinimalUser", "Base", "client", "raw", "_a", "_b", "_c", "_d", "PostSet", "Base", "Base", "SearchTrendBlacklist", "Base", "RisingSearchTrend", "SearchTrend", "Base", "StaffNote", "Base", "Tag", "TagPreview", "Base", "Takedown", "Base", "Ticket", "Base", "Upload", "Base", "UploadWhitelist", "Base", "User", "CurrentUser", "FullCurrentUser", "FullUser", "Base", "UserFeedback", "Base", "UserNameChangeRequest", "Base", "WikiPage", "Base", "WikiPageVersion", "Base", "CommentVote", "Base", "Base", "Base", "client", "_a", "PostApproval", "Base", "PostDisapproval", "Base", "PostEvent", "Base", "PostFlag", "Base", "PostReplacement", "Base", "Base", "TagAlias", "Base", "TagCorrection", "Base", "TagImplication", "Base", "TagTypeVersion", "Base", "PostVote", "Base", "ForumPostVote", "Base", "Base", "Base", "ExceptionLog", "Base", "StaffFile", "Base", "Base", "Base", "Base", "StaffWiki", "Base", "StaffWikiVersion", "Base", "client", "ApiKey", "PostVersion", "client"]
|
|
7
|
+
}
|